Робота з внутрішньою пам'яттю eeprom - мікроконтролери та технології

не використовуються, Новомосковскются як "0"

Дозвіл переривання від EEPROM. Цей розряд управляє генерацією переривання, що виникає при завершенні циклу записи в EEPROM. Якщо цей розряд встановлений в «1», переривання дозволені (якщо прапор I регістру
SREG також встановлено в «1»). При скинутому розряді EEWE (див. Далі в
таблиці) переривання генерується постійно

Управління дозволом запису в EEPROM. Стан цього розряду визначає функціонування прапора дозволу записи EEWE. Якщо даний розряд встановлений в «1», то при записі в розряд EEWE «1» відбувається запис даних в EEPROM. В іншому випадку установка EEWE в «1» не виробляє ніякого ефекту. Після програмної установки розряд EEMWE скидається апаратно через
4 машинних циклу

Дозвіл запису в EEPROM. При установці цього розряду в «1» відбувається запис даних в EEPROM (якщо EEMWE дорівнює «1»)

Дозвіл читання з EEPROM. Після установки цього розряду в «1» виконується читання даних з EEPROM. Після закінчення читання цей розряд скидається апаратно

Для запису одного байта в EEPROM необхідно:

1. Дочекатися готовності EEPROM до запису даних (чекати поки не скинеться прапор EEWE регістра EECR).

2. Дочекатися завершення запису у FLASH пам'ять програм (чекати поки не скинеться прапор SPMEN регістра SPMCR).

4. Встановити в «1» прапор EEMWE регістра EECR.

5. Записати в розряд EEWE регістра EECR лог. «1» протягом 4-х машинних циклів. Після установки цього розряду процесор
пропускає 2 машинних циклу перед виконанням наступної інструкції.

Для читання одного байта з EEPROM необхідно:

3. Встановити в «1» розряд EERE регістра EECR.

Коли запитані дані будуть поміщені в регістр даних EEDR, відбудеться апаратне скидання цього розряду. Однак стежити за станом розряду EERE для визначення моменту завершення операції читання не потрібно, т. К. Операція читання з EEPROM завжди виконується за один машинний цикл. Крім того, після установки розряду EERE в «1» процесор пропускає 4 машинних циклу перед початком виконання наступної інструкції.

У середовищі AVR Studio GCC є стандартна бібліотека для роботи з EEPROM яка включається підключенням файлу . Основними функціями є eeprom_read_byte (), eeprom_write_byte (), eeprom_read_word (), eeprom_write_word (). Для прикладу напишемо програму міні-лічильника від 0 до 9, де при натисненні на одну кнопку буде додаватися значення, а на іншу кнопку буде зберігатися це значення в пам'яті. Мікроконтролер Atmega8 працює від внутрішнього тактового генератора частотою 8МГц. Однорозрядних семисегментний індикатор із загальним анодом через струмообмежувальні резистори R1-R7 підключається до порту В, загальний анод до плюса харчування. Схема показана нижче:

Робота з внутрішньою пам'яттю eeprom - мікроконтролери та технології

Для початку підключаємо необхідні для роботи бібліотеки, в тому числі EEPROM. Визначаємо змінні. Змінна "s" зберігає значення для виведення на індикатор, при натисканні на кнопку SB1 це значення збільшується на одиницю, але не більше 10. Мінлива eeprom_var буде взаємодіяти з EEPROM. При включенні харчування Новомосковскется EEPROM, лічені дані присвоюються змінної "s", виходячи з цього на індикатор виводиться певна цифра. При натисканні на SB2 дані з змінної "s" запісиваютя в EEPROM, при цьому індикатор блимне один раз.

Схожі статті