atmega16 использование встроенной памяти

Обсуждаем контроллеры компании Atmel.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 759
Зарегистрирован: Пн май 12, 2014 06:13:33

Сообщение novarobotix »

есть ли у atmega16 встроенная энергонезависимая память для хранения данных или надо цеплать внешнюю микросхему?
скажем в программе есть массив переменных unsigned char data[255]; в программе поназначал кучу значений data[136]=235; data[16]=35; и т п, и надо чтобы они в этом массиве при повторном включении питания были.
Глупый не задает вопросы. Глупый и так все знает.
Реклама
Вымогатель припоя
Сообщения: 541
Зарегистрирован: Вт фев 09, 2010 17:52:26

Сообщение codenamehawk »

Есть такая память, а что даташиты все пропали?
Реклама
Открыл глаза
Сообщения: 76
Зарегистрирован: Чт ноя 13, 2014 19:37:34

Сообщение Stanislavich »

Есть:
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

Сообщение COKPOWEHEU »

novarobotix писал(а):есть ли у atmega16 встроенная энергонезависимая память
Stanislavich писал(а): 1 Kbyte Internal SRAM
Что?
Реклама
Опытный кот
Аватара пользователя
Сообщения: 759
Зарегистрирован: Пн май 12, 2014 06:13:33

Сообщение novarobotix »

что-то не нашёл внятного работающего описания работы с такой памятью с работающими примерами . ну типа есть куча переменных и храню их в этой памяти. или массив переменных типа unsigned char data[255];
Глупый не задает вопросы. Глупый и так все знает.
Реклама
Открыл глаза
Сообщения: 76
Зарегистрирован: Чт ноя 13, 2014 19:37:34

Сообщение Stanislavich »

COKPOWEHEU писал(а):
novarobotix писал(а):есть ли у atmega16 встроенная энергонезависимая память
Stanislavich писал(а): 1 Kbyte Internal SRAM
Что?
http://www.atmel.com/Images/2466S.pdf
Опытный кот
Аватара пользователя
Сообщения: 759
Зарегистрирован: Пн май 12, 2014 06:13:33

Сообщение novarobotix »

стьюдент писал(а): Только не совсем понятно зачем вам нужна EEPROM, если вы присваиваете константы в программе, никуда они из FLASH не пропадут :))
определил в начале unsigned char data[255];

а потом в программе по ходу дела им присваиваются значения data[136]=235; data[16]=35; вот чтобы при пропадании питания они сохранялись.
235 и 35 это к примеру количество импульсов на ноге порта - считаются программой. то есть заранее я не знаю какие числа писать в массив.
стьюдент писал(а):в книге Евстифеева "микроконтроллеры AVR семейства Mega" есть хорошее описание работы с EEPROM, при желании можно разобраться.
там примеры на ассемблере. или я не то скачал?
Глупый не задает вопросы. Глупый и так все знает.
Открыл глаза
Сообщения: 47
Зарегистрирован: Вт мар 20, 2012 07:16:43

Сообщение стьюдент »

Примеры на ассемблере и на СИ. Кроме того, примеры кода должны быть в даташите на ваш контроллер.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

стьюдент писал(а):Кроме того, примеры кода должны быть в даташите на ваш контроллер.
Примеры в даташите на мегу16 начинаются со страницы 21.
novarobotix писал(а):а потом в программе по ходу дела им присваиваются значения data[136]=235; data[16]=35; вот чтобы при пропадании питания они сохранялись.
Только учтите, что ресурс EEPROM 100 000 циклов, так что если часто перезаписывать, то надолго не хватит.
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Stanislavich писал(а): http://www.atmel.com/Images/2466S.pdf
Специально же выделил! С каких пор ОЗУ стало энергонезависимым?
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

novarobotix писал(а):определил в начале unsigned char data[255];
Определите сразу в ЕЕПРОМе:

Код: Выделить всё

eeprom unsigned char data[255];
и работайте в своё удовольствие. После снятия напряжения питания никуда не денутся. С оговорками Errata в тех же даташитах.
Engineer_Keen писал(а):ресурс EEPROM 100 000 циклов
Если перезаписывать каждую секунду, то будет:
100 000 / 60 / 60 = 27,7 часа. Норм. Потом следующий в патронник.
Docendo discimus
Контактная информация:
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

Определение "в eeprom" - ограниченно компилятором.
Если в AVR Studio, то http://avr-libc.narod.ru/group__avr__eeprom.html
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Открыл глаза
Сообщения: 76
Зарегистрирован: Чт ноя 13, 2014 19:37:34

Сообщение Stanislavich »

COKPOWEHEU писал(а):
Stanislavich писал(а): http://www.atmel.com/Images/2466S.pdf
Специально же выделил! С каких пор ОЗУ стало энергонезависимым?
Я просто скинул какая у нее есть память...
Опытный кот
Аватара пользователя
Сообщения: 759
Зарегистрирован: Пн май 12, 2014 06:13:33

Сообщение novarobotix »

pyzhman писал(а):
novarobotix писал(а):определил в начале unsigned char data[255];
Определите сразу в ЕЕПРОМе:

Код: Выделить всё

eeprom unsigned char data[255];
и работайте в своё удовольствие. После снятия напряжения питания никуда не денутся. С оговорками Errata в тех же даташитах.
Engineer_Keen писал(а):ресурс EEPROM 100 000 циклов
Если перезаписывать каждую секунду, то будет:
100 000 / 60 / 60 = 27,7 часа. Норм. Потом следующий в патронник.
о! спасибо! скомпилилось! в кодевижн пишу.
писать мне всего пару раз нужно, а потом много раз считывать.а скорость считывания сильно медленнее считывания если без eeprom определить?
Stanislavich писал(а):http://www.atmel.com/Images/2466S.pdf
Специально же выделил! С каких пор ОЗУ стало энергонезависимым?
Я просто скинул какая у нее есть память...
то есть получается есть 512 байт ЕЕPROM?
максимум что я могу туда записать это:

Код: Выделить всё

eeprom unsigned char data1[255];
eeprom unsigned char data2[255];
и память кончилась?
Последний раз редактировалось novarobotix Чт ноя 27, 2014 17:53:49, всего редактировалось 1 раз.
Глупый не задает вопросы. Глупый и так все знает.
Открыл глаза
Сообщения: 76
Зарегистрирован: Чт ноя 13, 2014 19:37:34

Сообщение Stanislavich »

novarobotix писал(а):и память кончилась?
Ты можешь записать в нее 4144 символов двоичного кода.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Если нужно больше и записывать нужно чаще - лучше посмотреть в сторону внешних флешек. Все-таки встроенная EEPROM контроллера предназначена для хранения настроек и тому подобного, а не километровых логов.
Опытный кот
Аватара пользователя
Сообщения: 759
Зарегистрирован: Пн май 12, 2014 06:13:33

Сообщение novarobotix »

Stanislavich писал(а):Ты можешь записать в нее 4144 символов двоичного кода.
а это сколько в unsigned char data[255]-х ?
COKPOWEHEU писал(а):Если нужно больше и записывать нужно чаще - лучше посмотреть в сторону внешних флешек. Все-таки встроенная EEPROM контроллера предназначена для хранения настроек и тому подобного, а не километровых логов.
мне надо один раз сконфигурить под конкретный мотор таблицу и потом чтобы работало(только считывало данные). так что пока не вижу смысла во внешней если можно внутрюнюю юзнуть.
Последний раз редактировалось novarobotix Чт ноя 27, 2014 19:49:20, всего редактировалось 1 раз.
Глупый не задает вопросы. Глупый и так все знает.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Для таких объемов може тправда в сторону flash посмотреть? Запись памяти программ возможно не только из загрузчика, но на время записи процессор остановится.
Опытный кот
Аватара пользователя
Сообщения: 759
Зарегистрирован: Пн май 12, 2014 06:13:33

Сообщение novarobotix »

COKPOWEHEU писал(а):Для таких объемов може тправда в сторону flash посмотреть? Запись памяти программ возможно не только из загрузчика, но на время записи процессор остановится.
ну я не всё сразу буду писать а по одной цифирке потом расчёт, потом другая цифра. и скорость небольшая во время записи
Глупый не задает вопросы. Глупый и так все знает.
Ответить

Вернуться в «AVR»