Пятница, 28.07.2017, 19:50
Вы вошли как Гость | Группа "Гости"Приветствую Вас Гость | RSS
Главная | EEPROM AVR - Форум | Мой профиль | Регистрация | Выход | Вход
Обитель RC-инженера
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ВитГо 
Форум » Разработка электронных устройств » Справочная » EEPROM AVR
EEPROM AVR
uwrteyДата: Понедельник, 02.11.2015, 00:48 | Сообщение # 1
Полковник
Группа: Администраторы
Сообщений: 2409
Репутация: 9
Статус: Offline
Ассемблер http://easyelectronics.ru/avr-uchebnyj-kurs-ispolzovanie-eeprom.html .

СИ http://chipenable.ru/index.p....si.html .

Код

;*******************************************************************************
; Подпрограмма работы с EEPROM
;*******************************************************************************

; запись в EEPROM

;
;    LDI  XL,0   ; Загружаем адрес нулевой ячейки
;    LDI  XH,0   ; EEPROM
;    LDI  R21,45   ; и хотим записать в нее число 45
;    RCALL  EEWrite   ; вызываем процедуру записи.
;

EEWrite:    
    SBIC    EECR,EEWE  ; Ждем готовности памяти к записи. Крутимся в цикле
    RJMP    EEWrite   ; до тех пор пока не очистится флаг EEWE

    CLI    ; Затем запрещаем прерывания.
    OUT  EEARL,XL   ; Загружаем адрес нужной ячейки
    OUT  EEARH,XH    ; старший и младший байт адреса
    OUT  EEDR,R21   ; и сами данные, которые нам нужно загрузить

    SBI  EECR,EEMWE  ; взводим предохранитель
    SBI  EECR,EEWE  ; записываем байт

    SEI     ; разрешаем прерывания
    RET     ; возврат из процедуры

;*******************************************************************************

; чтение из EEPROM ( вызов подпрограммы )

;
;    LDI  XL,0   ; Загружаем адрес нулевой ячейки
;    LDI  XH,0   ; EEPROM из которой хотим прочитать байт
;    RCALL  EERead    ; вызываем процедуру чтения. После которой
;     ; в R21 будет считанный байт.

EERead:    
    SBIC  EECR,EEWE  ; Ждем пока будет завершена прошлая запись.
    RJMP    EERead   ; также крутимся в цикле.
    OUT  EEARL, XL  ; загружаем адрес нужной ячейки
    OUT   EEARH, XH   ; его старшие и младшие байты
    SBI  EECR,EERE   ; Выставляем бит чтения
    IN  R21, EEDR   ; Забираем из регистра данных результат
    RET

;*******************************************************************************


что то я не успеваю за своими мыслями......

Сообщение отредактировал uwrtey - Понедельник, 02.11.2015, 00:56
 
Форум » Разработка электронных устройств » Справочная » EEPROM AVR
Страница 1 из 11
Поиск:


Copyright MyCorp © 2017
Сделать бесплатный сайт с uCoz