скажем в программе есть массив переменных unsigned char data[255]; в программе поназначал кучу значений data[136]=235; data[16]=35; и т п, и надо чтобы они в этом массиве при повторном включении питания были.
atmega16 использование встроенной памяти
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
есть ли у atmega16 встроенная энергонезависимая память для хранения данных или надо цеплать внешнюю микросхему?
скажем в программе есть массив переменных unsigned char data[255]; в программе поназначал кучу значений data[136]=235; data[16]=35; и т п, и надо чтобы они в этом массиве при повторном включении питания были.
скажем в программе есть массив переменных unsigned char data[255]; в программе поназначал кучу значений data[136]=235; data[16]=35; и т п, и надо чтобы они в этом массиве при повторном включении питания были.
Глупый не задает вопросы. Глупый и так все знает.
- Реклама
- Сообщения: 541
- Зарегистрирован: Вт фев 09, 2010 17:52:26
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
Есть:
16 Kbytes of In-System Self-programmable Flash program memory
512 Bytes EEPROM
1 Kbyte Internal SRAM
16 Kbytes of In-System Self-programmable Flash program memory
512 Bytes EEPROM
1 Kbyte Internal SRAM
- Сообщения: 47
- Зарегистрирован: Вт мар 20, 2012 07:16:43
в книге Евстифеева "микроконтроллеры AVR семейства Mega" есть хорошее описание работы с EEPROM, при желании можно разобраться. Только не совсем понятно зачем вам нужна EEPROM, если вы присваиваете константы в программе, никуда они из FLASH не пропадут 
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
novarobotix писал(а):есть ли у atmega16 встроенная энергонезависимая память
Что?Stanislavich писал(а): 1 Kbyte Internal SRAM
- Реклама
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
что-то не нашёл внятного работающего описания работы с такой памятью с работающими примерами . ну типа есть куча переменных и храню их в этой памяти. или массив переменных типа unsigned char data[255];
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
http://www.atmel.com/Images/2466S.pdfCOKPOWEHEU писал(а):novarobotix писал(а):есть ли у atmega16 встроенная энергонезависимая памятьЧто?Stanislavich писал(а): 1 Kbyte Internal SRAM
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
определил в начале unsigned char data[255];стьюдент писал(а): Только не совсем понятно зачем вам нужна EEPROM, если вы присваиваете константы в программе, никуда они из FLASH не пропадут
а потом в программе по ходу дела им присваиваются значения data[136]=235; data[16]=35; вот чтобы при пропадании питания они сохранялись.
235 и 35 это к примеру количество импульсов на ноге порта - считаются программой. то есть заранее я не знаю какие числа писать в массив.
там примеры на ассемблере. или я не то скачал?стьюдент писал(а):в книге Евстифеева "микроконтроллеры AVR семейства Mega" есть хорошее описание работы с EEPROM, при желании можно разобраться.
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 47
- Зарегистрирован: Вт мар 20, 2012 07:16:43
Примеры на ассемблере и на СИ. Кроме того, примеры кода должны быть в даташите на ваш контроллер.
Примеры в даташите на мегу16 начинаются со страницы 21.стьюдент писал(а):Кроме того, примеры кода должны быть в даташите на ваш контроллер.
Только учтите, что ресурс EEPROM 100 000 циклов, так что если часто перезаписывать, то надолго не хватит.novarobotix писал(а):а потом в программе по ходу дела им присваиваются значения data[136]=235; data[16]=35; вот чтобы при пропадании питания они сохранялись.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Специально же выделил! С каких пор ОЗУ стало энергонезависимым?Stanislavich писал(а): http://www.atmel.com/Images/2466S.pdf
Определите сразу в ЕЕПРОМе:novarobotix писал(а):определил в начале unsigned char data[255];
Код: Выделить всё
eeprom unsigned char data[255];Если перезаписывать каждую секунду, то будет:Engineer_Keen писал(а):ресурс EEPROM 100 000 циклов
100 000 / 60 / 60 = 27,7 часа. Норм. Потом следующий в патронник.
Docendo discimus
Определение "в eeprom" - ограниченно компилятором.
Если в AVR Studio, то http://avr-libc.narod.ru/group__avr__eeprom.html
Если в AVR Studio, то http://avr-libc.narod.ru/group__avr__eeprom.html
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
Я просто скинул какая у нее есть память...COKPOWEHEU писал(а):Специально же выделил! С каких пор ОЗУ стало энергонезависимым?Stanislavich писал(а): http://www.atmel.com/Images/2466S.pdf
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
о! спасибо! скомпилилось! в кодевижн пишу.pyzhman писал(а):Определите сразу в ЕЕПРОМе:novarobotix писал(а):определил в начале unsigned char data[255];и работайте в своё удовольствие. После снятия напряжения питания никуда не денутся. С оговорками Errata в тех же даташитах.Код: Выделить всё
eeprom unsigned char data[255];
Если перезаписывать каждую секунду, то будет:Engineer_Keen писал(а):ресурс EEPROM 100 000 циклов
100 000 / 60 / 60 = 27,7 часа. Норм. Потом следующий в патронник.
писать мне всего пару раз нужно, а потом много раз считывать.а скорость считывания сильно медленнее считывания если без eeprom определить?
то есть получается есть 512 байт ЕЕPROM?Stanislavich писал(а):http://www.atmel.com/Images/2466S.pdf
Специально же выделил! С каких пор ОЗУ стало энергонезависимым?
Я просто скинул какая у нее есть память...
максимум что я могу туда записать это:
Код: Выделить всё
eeprom unsigned char data1[255];
eeprom unsigned char data2[255];
Последний раз редактировалось novarobotix Чт ноя 27, 2014 17:53:49, всего редактировалось 1 раз.
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 76
- Зарегистрирован: Чт ноя 13, 2014 19:37:34
Ты можешь записать в нее 4144 символов двоичного кода.novarobotix писал(а):и память кончилась?
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Если нужно больше и записывать нужно чаще - лучше посмотреть в сторону внешних флешек. Все-таки встроенная EEPROM контроллера предназначена для хранения настроек и тому подобного, а не километровых логов.
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
а это сколько в unsigned char data[255]-х ?Stanislavich писал(а):Ты можешь записать в нее 4144 символов двоичного кода.
мне надо один раз сконфигурить под конкретный мотор таблицу и потом чтобы работало(только считывало данные). так что пока не вижу смысла во внешней если можно внутрюнюю юзнуть.COKPOWEHEU писал(а):Если нужно больше и записывать нужно чаще - лучше посмотреть в сторону внешних флешек. Все-таки встроенная EEPROM контроллера предназначена для хранения настроек и тому подобного, а не километровых логов.
Последний раз редактировалось novarobotix Чт ноя 27, 2014 19:49:20, всего редактировалось 1 раз.
Глупый не задает вопросы. Глупый и так все знает.
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Для таких объемов може тправда в сторону flash посмотреть? Запись памяти программ возможно не только из загрузчика, но на время записи процессор остановится.
- Сообщения: 759
- Зарегистрирован: Пн май 12, 2014 06:13:33
ну я не всё сразу буду писать а по одной цифирке потом расчёт, потом другая цифра. и скорость небольшая во время записиCOKPOWEHEU писал(а):Для таких объемов може тправда в сторону flash посмотреть? Запись памяти программ возможно не только из загрузчика, но на время записи процессор остановится.
Глупый не задает вопросы. Глупый и так все знает.


