Суббота, 12 марта 2011 23:32

ПП для работы с EEPROM

Written by
Rate this item
(0 votes)

Накатал я тут библиотечку для работы с EEPROM, вдруг кому пригодиться.
И так, сам код:

 

 

ee_size equ 0x7F ; Размер записываемых данных (адрес входного регистра)

;- EEPROM READ ----------;
ee_read_byte ; ПП чтения 1-ого байта
bsf   STATUS,RP0
movwf   EEADR
bsf EECON1,RD
movf EEDATA,W
movwf INDF
bcf STATUS,RP0
return;
ee_read ; ПП чтения нескольких байт
call ee_read_byte
bsf STATUS,RP0
incf EEADR,F
movf EEADR,W
incf FSR,F
bcf STATUS,RP0
decfsz ee_size
goto ee_read
return;
;-------------------------;

;- EEPROM WRITE ----------;
ee_write_byte ; ПП записи 1-ого байта
bsf STATUS,RP0
movwf EEADR
movf INDF,W
movwf EEDATA
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bcf STATUS,RP0
return;
ee_write ; ПП записи нескольких байт
call ee_write_byte
bsf STATUS,RP0
incf EEADR,F
movf EEADR,W
incf FSR,F
bcf STATUS,RP0
decfsz ee_size
goto ee_write
return;
;------------------------;


Для записи однобайтной переменной, необходимо в регистр FSR записать адрес переменной, в аккумулятор записать адрес eeprom и вызвать ПП ee_write_byte

Для записи многообайтной переменной (например массива), необходимо в регистр FSR записать начальный адрес переменной, в регистр ee_size записать размер переменной (кол-во сохраняемых байт), в аккумулятор - начальный адрес eeprom и вызвать ПП ee_write

Для чтения 1-ого байта в переменную из еепром, необходимо в регистр FSR записать адрес переменной, в аккумулятор записать адрес eeprom и вызвать ПП ee_read_byte

Для чтения в переменную нескольких байт из еепром, необходимо в регистр FSR записать начальный адрес переменной, в регистр ee_size записать размер переменной (кол-во читаемых байт), в аккумулятор записать начальный адрес eeprom и вызвать ПП ee_read

Скачать проект с примером и обсудить статью можно тут

Read 2766 times

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru