Avr для початківців
Доброго вам дня!
Сьогодні ми поговоримо про таку важливу складову мікроконтролера як EEPROM. Дуже часто виникає необхідність збереження даних при відключенні живлення мікроконтролера. Наприклад, констант, налаштувань, і так далі. Саме для таких ситуацій мікроконтролери AVR мають у своєму складі постійну незалежну пам'ять EEPROM. в якій запросто можна розмістити необхідні дані. Тобто, при відключенні живлення контроллера або його скиданні, дані записані в EEPROM не стирається. Обсяг EEPROM залежить від моделі контролера.
Однак дана пам'ять має хоч і величезна але, обмежена кількість циклів перезапису (близько 100 000), і швидкість роботи з нею досить низька.
При роботі з пам'яттю за допомогою мови C. можна абстрагуватися від низькорівневих функцій і роботи безпосередньо з регістрами, так як в стандартному постачанні середовища Atmel (AVR) Studio вже присутня бібліотека для роботи з даним видом пам'яті. При використанні Assembler. прописати дані функції, шляхом послідовної роботи з регістрами, доведеться самому. Залишимо Assembler на наступний урок, а зараз попрацюємо з C.
Для роботи з постійною пам'яттю даних в Atmel (AVR) Studio використовуються наступні функції стандартної бібліотеки eeprom. h:
eeprom_read_byte (eeprom_read_word, eeprom_read_dword, eeprom_read_float, eeprom_read_block) - Функція читання даних відповідного типу з EEPROM.
eeprom_write_byte (eeprom_write_word, eeprom_write_dword, eeprom_write_float, eeprom_write_block) - Функція запису даних відповідного типу в EEPROM.
eeprom_update_byte (eeprom_ update _word, eeprom_ update _dword, eeprom_ update _float, eeprom_ update _block) - Функція поновлення даних відповідного типу в EEPROM.
Давайте як приклад створимо лічильник запусків контролера. Тобто, при кожному запуску контролера, збільшуємо лічильник на одиницю.
У Atmel (AVR) Studio напишемо наступний код:
Погляньмо на цей код докладніше. Спочатку директивою include підключаємо заголовки eeprom. h. Потім створюємо змінну OUT. типу uint 8_ t. і розміщуємо її в EEPROM. директивою EEMEM.
Atmel (AVR) Studio автоматично згенерує файл EEPROM розширення. eep. в папці з проектом. Однак для його використання в ПО Proteus. необхідно перетворити його в. bin. за допомогою утиліти hex 2 bin. яку ви можете знайти в Інтернеті.
Після перетворення файлу, необхідно налаштувати мікроконтролер в середовищі Proteus. Для цього, помістіть відповідний контролер на схемі і клікніть двічі на ньому.
В даному вікні. відкрийте список Advanced Properties, і виберіть пункт Initial Contents of Data EEPROM. Натиснувши на іконку з папкою, вкажіть шлях до файлу. bin.
У цьому ж вікні не забудьте вказати шлях до файлу прошивки, в пункті Program File.
Після всіх описаних вище процедур, Ви можете запустити симуляцію роботи схеми в звичайному режимі.
Дякую за увагу!
Читайте також AVR для початківців. Урок 15. Регістри EEPROM.
Навігація по публікаціям