|
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@ П/п чтения данных из EEPROM @
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
EepromByteRead: MOVLW 1 ;
EepromBlockRead: MOVFF b0EepromAdr,EEADR ;
BCF EECON1,EEPGD ; Point to DATA memory
BCF EECON1,WREN ;
BCF EECON1,CFGS ;
INCF b0EepromAdr ;
BSF EECON1,RD ; EEPROM Read
MOVFF EEDATA,POSTINC0 ;
DECFSZ WREG ;
BRA EepromBlockRead ;
RET ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@ П/п записи данных в EEPROM @
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
EepromByteWr: MOVLF 1,b0EepromByteCnt ;
EepromBlockWr: BCF PIR2,EEIF ; Clear "WRITE TO EEPROM DONE" interrupt flag
_wenb: MOVFF b0EepromAdr,EEADR ; Init EepromAdr
BCF EECON1,EEPGD ; Point to DATA memory
BCF EECON1,CFGS ; Acsesse to EEPROM
NOP ;
BSF EECON1,RD ;
XORFF EEDATA,INDF0,w ;
BZ SkpWrEeprom ;MOVFF INDF0,EEDATA ; Data Memory Value to write
BSF EECON1,WREN ; Enable writes
MOVLF 0x55,EECON2 ; Required sequence...
MOVLF 0xAA,EECON2 ; ...
BSF EECON1,WR ; Set WR bit to begin write
WAITB1 PIR2,EEIF ; ждемс конец записи,бля
BCF EECON1,WREN ; Disable writes
BCF PIR2,EEIF ;SkpWrEeprom: MOVF POSTINC0,w ; incf FSR0
INCF b0EepromAdr ; Увеличить адрес EEPROM
DECFSZ b0EepromByteCnt ; все байты записаны?
BRA _wenb ;
RET ;
E-mail: info@telesys.ru