Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 14.03.2019, 04:31  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

dkm, таки счёт до 999 и всего 100 таких циклов дают уже ресурс для двух байт памяти. Сохранять ведь нужно каждое достигнутое значение счета.

nml, там именно запись в цикле будет идти при каждом изменении счета.

Вариант уважаемого makakus будет примерно в 4K раз дольше выбирать ресурс. Дальнейшее уже зависит от скорости счета…
Реклама:
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 14.03.2019, 05:54  
Yarikkasl
Частый гость
 
Регистрация: 11.03.2019
Сообщений: 26
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Yarikkasl на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Я наверное неправильно спросил, если чуть подробнее то мне нужен счётчик импульсов который считает 2 числа, и выводит на дисплей 1 число а если нажать дополнительную кнопку то второе, так как вывод на трёх разрядный семимегментный индикатор то максимальное значение 999, и нужно мне текущее значение сохранить а при включении продолжить счёт, в программировании я совсем не очень так что даже как пользоваться макросами ч не умею.
Yarikkasl вне форума  
Непрочитано 14.03.2019, 09:48  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Сообщение от dkm Посмотреть сообщение
Это что за задача, в которой постоянно нужно писать именно в EEPROM более 100000 раз???
Я не знаю.

У меня были такие задачи. Запоминать, с какой стороны намотан последний слой кабеля на катушке, чтобы укладчику при намотке ехать вправо или влево? Запоминать, что устройство наведения слева или справа от датчика, потому что если искать датчик всё время влево (или вправо) можно замотать провода. Запоминать уровень яркости и цвет.
Конечно, можно ловить момент выключения питания и успевать записать, что нужно. Но ловить было нечем, там некуда и уже поздно вешать дополнительные элементы.
Ну вот и вывелся такой алгоритм, в пределах даташита
makakus вне форума  
Сказали "Спасибо" makakus
mike-y-k (14.03.2019)
Непрочитано 14.03.2019, 09:54  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Сообщение от Yarikkasl Посмотреть сообщение
Я наверное неправильно спросил, если чуть подробнее
Это общая болезнь - спрашивать, не объяснив задачу полностью.
Если это у вас не курсовик "сделал и забыл", если вы хотите разобраться с программированием, спрашивайте. Лучше, если опишете задачу полностью: что должно делать устройство, это игрушка для себя или для чего.
Я пишу на ассемблере для АВР, на С приходилось под windows, так что советы мои будут ограниченными ) Вам помогут, если почувствуют, что вам надо. Успехов!
makakus вне форума  
Сказали "Спасибо" makakus
mike-y-k (14.03.2019)
Непрочитано 14.03.2019, 10:25  
Yarikkasl
Частый гость
 
Регистрация: 11.03.2019
Сообщений: 26
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Yarikkasl на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Сообщение от makakus Посмотреть сообщение
Это общая болезнь - спрашивать, не объяснив задачу полностью.
Если это у вас не курсовик "сделал и забыл", если вы хотите разобраться с программированием, спрашивайте. Лучше, если опишете задачу полностью: что должно делать устройство, это игрушка для себя или для чего.
Я пишу на ассемблере для АВР, на С приходилось под windows, так что советы мои будут ограниченными ) Вам помогут, если почувствуют, что вам надо. Успехов!
Ну мне не сложно, делаю так как нужно сделать и впринципе мне интересно освоить данный навык, а если о задаче то есть микросхема 1887ве7т является полным аналогом atmega128, на ней нужно сделать счётчик который будет на устройстве и считать количества циклов загруженной ма́шины и разгруженной, периодически будет подключаться пульт с дисплеем и кнопкой на котором отображается количество циклов загруженной машины и при нажатии кнопки отображается количество циклов разгруженной машины, я реализовал всё, кроме памяти, сделал две переменных подключил через сдвиговые регистры дисплеи и получил статическую индикацию, в поотеусе все работает, как прийдёт комплект будем испытывать на железе, счёт идёт по восходящему фронту , есть ещё условие что если при включении МК, будет сразу подан сигнал то мы его не должны учитывать но это в идеале пока задача сделать без этого условия, просто счётчик с памятью,
Yarikkasl вне форума  
Непрочитано 14.03.2019, 10:28  
Yarikkasl
Частый гость
 
Регистрация: 11.03.2019
Сообщений: 26
Сказал спасибо: 6
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Yarikkasl на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

И кстати почему то код из atmel studio 6 из различных уроков на том же ютубе выдает кучу ошибок и не хочет работать в 7 версии лично у меня(
Yarikkasl вне форума  
Непрочитано 14.03.2019, 10:35  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Сообщение от Yarikkasl Посмотреть сообщение
считать количества циклов загруженной ма́шины и разгруженной
Значит ваш счётчик не будет наматывать по 5000 изменений в день. Значит, ресурс даже 100000 это довольно много.
makakus вне форума  
Непрочитано 14.03.2019, 10:38  
parovoZZ
Почётный гражданин KAZUS.RU
 
Регистрация: 15.11.2010
Сообщений: 2,379
Сказал спасибо: 338
Сказали Спасибо 328 раз(а) в 253 сообщении(ях)
parovoZZ на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Сообщение от makakus Посмотреть сообщение
После прошивки указатель eptr = 3, EEPROM[5..8]=00. При включении питания читаем указатель eptr = EEPROM[1,2], ваш счётчик: counter= EEPROM[eptr+2, eptr+3] и счётчик перезаписей ewctr=EPROM[eptr, eptr+1].
При каждой перезаписи counter наращиваем счётчик ewctr и записываем их оба в EEPROM[eptr...eptr+3].
Если ewctr==65535 eptr+=1; ewctr=0; дополнительно записываем eptr в EEPROM[1,2]. Да, теперь наши два счётчика записываются с перекрытием прежнего места, со сдвигом на один байт. Посчитайте, сколько раз будет перезаписана каждая ячейка EEPROM, с учётом того, что одинаковое значение не перезаписывается и младший байт размещён в младшем адресе памяти.
Если указатель каждый раз на новом месте, то при включении необходимо обращаться не к
Цитата:
eptr = EEPROM[1,2], ваш счётчик: counter= EEPROM[eptr+2, eptr+3]
, а прочитать всю еепром и найти счетчик с максимальным значением. В противном случае мы не будем знать, в каком месте лежат актуальные значения.
parovoZZ вне форума  
Непрочитано 14.03.2019, 10:44  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Yarikkasl, вопрос больше в частоте счета.

Для сохранения ресурса повесить дополнительно с автономным питанием последовательные регистры типа 74LS693 и хранить числа там. Есть и более емкие последовательные регистровые ОЗУ, следующий размер ЕМНИП 64 бит.
В таком варианте дополнительного кода будет совсем немного - из любого примера софтового I2C выбросить все лишнее.

На тему программирования - стоит начать с книги Б. Керниган, Д. Ритчи. "Язык программирования Си". Лучше сразу в двух форматах - бумажном и электронном.
Читать, выполнять и разбирать примеры, потом смотреть на чужой код,…

Как понимать Ваше отключение - по команде или просто в неизвестный момент отключение питания. Там можно предусмотреть автономное питание для нормального завершения работы и сохранения состояния счета. Периферии у МК достаточно для реализации нужного.
А вот циклическая запись в любую внутреннюю память - пример не самой лучшей практики

Какое время между отключением и включением планируется по максимуму?
Может действительно поставить чип RTC и использовать его память? Там SRAM с питанием от батарейки. На год-два ее вполне должно хватить…, дальше замена батарейки. Состояние батарейки там тоже можно оценивать для индикации необходимости замены…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 14.03.2019, 10:54  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,105
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Вопрос atmega 128.

Сообщение от parovoZZ Посмотреть сообщение
Если указатель каждый раз на новом месте
Указатель всегда на одном месте, по адресу 1. Он перезапишется всего 4000 раз. А структура {‹счётчик перезаписей›,‹инфа›} через 65000 перезаписей сдвигается вперёд на 1 байт.

А пожалуй, ошибся я.
Если инфа переписывается каждый раз, то количество превысит 100 000.
В данном случае можно либо уменьшать максимальное кол-во перезаписей, либо писать сначала младшие байты счётчиков, потом старшие и наращивать указатель на 2.
В общем, думать надо
makakus вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Частотомер Atmega 128 deeman30rus Электроника - это просто 8 25.07.2012 07:29
ATmega 128 . Пытаюсь запустить таймер Т2... home2010 Микроконтроллеры, АЦП, память и т.д 7 31.03.2010 07:47
ATmega 8 Помогите разобраться !!! snakesoft Микроконтроллеры, АЦП, память и т.д 41 07.12.2008 20:48
USB-программатор для PIC greafuger Микроконтроллеры, АЦП, память и т.д 70 24.02.2008 16:44
4-битный режим LCD при работе с Atmega 128 Hellka Микроконтроллеры, АЦП, память и т.д 1 02.10.2006 14:23


Часовой пояс GMT +4, время: 03:58.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot