CORREGGO E AGGIUNGO qualcosina
allora se per caso qualcuno ha la curiosità, a seguire trova una codifica in C , scaricata da un forum
vi è una vorispondenza qusi uno ad uno
************* CODIFICA IN C *********
#include <pic16f6x.h>
void eeprom_w(char addr,char value)
{
EEADR=addr; // indirizzo cella memoria eeprom
EEDATA=value; // valore da memorizzare
GIE=0; // disabilita interrupt
WREN=1; // abilita la scrittura
EECON2=0x55; // Sequenza richiesta
EECON2=0xAA;
WR=1;
while(WR);
WREN=0;
GIE=1; // riabilita global interrupt
}
/* ************************************************** ******/
* Funzione per la ettura dati dalla memoria EEprom del PIC ** ************************************************** ********/
unsigned char eeprom_r(char addr)
{
EEADR=addr; // indirizzo cella memoria eeprom
RD=1;
return EEDATA;
}
************* CODIFICA IN ASSEMBLER *********
bsf STATUS,RP0 ;Swap to bank 1
movwf EEDATA
movlw b'00000000'
movwf EEADR
BCF INTCON,GIE ;Disable INTs.
bsf EECON1,WREN ;Enable Write
movlw H'55' ;Write 55h to EECON2
movwf EECON2
movlw H'AA' ;Write AAh to EECON2
movwf EECON2
bsf EECON1,WR ;Begin write
LoopWReeprom
btfsc EECON1,WR ;Writing done ?
goto LoopWReeprom ;No, wait
bcf EECON1,WREN ;Enable Write
BSF INTCON,GIE ;Enable INTs
|