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.

Навігація по публікаціям