P
piscaroy
Guest
hihi, ik wil de gegevens weer te geven die zijn opgeslagen in de eeprom maar i dont know how come i do is er een fout .. ik niet zeker van of de codes die ik geschreven issit juiste .. kan mij helpen .. mij met behulp van C18-compiler voor PIC18F452 zsm hier beneden is de bron codes ..
************************************************** *********
unsigned char ReadEEPROM (unsigned char Adresse)
(
EEADR = Adresse;
EECON1bits.EEPGD = 0; / / toegang tot DATA EEPROM
EECON1bits.CFGS = 0; / / toegang Flash-programma / Data EEPROM geheugen
EECON1bits.RD = 1; / / enable Read
return EEDATA; / / data is hier opgeslagen
)
void WriteEEPROM (unsigned char Adresse, unsigned char Data)
(
EEADR = Adresse;
EEDATA = Data;
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
INTCONbits.GIEH = 0; / / disable interrupts
INTCONbits.GIEL = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
EECON1bits.WREN = 0; / / disable schrijft over schrijven compleet
)
/ / main programm
void main () (
int waarde;
EEpromInit ();
LCDinit ();
value = 0;
LET
while ((value> 0) & & (waarde <3))
(
WriteEEPROM (EEADR, waarde); waarde ;
)
ReadEEPROM (EEADR);
if ((EEDATA = 0) & & (EEDATA = 1))putrsXLCD ( "waarde =% d", EEDATA); <--- FOUTelse if ((EEDATA> 1) & & (EEDATA <3))putrsXLCD ( "Mid Value =% d", EEDATA );<---- FOUTanders
putrsXLCD ( "Waarde is te groot");
value = 5; / / Toename initiële waarde voor het testen ... als volgende run de LCD moet "waarde display te groot"
goto AGAIN;
while (1);
)
************************************************** ********
************************************************** *********
unsigned char ReadEEPROM (unsigned char Adresse)
(
EEADR = Adresse;
EECON1bits.EEPGD = 0; / / toegang tot DATA EEPROM
EECON1bits.CFGS = 0; / / toegang Flash-programma / Data EEPROM geheugen
EECON1bits.RD = 1; / / enable Read
return EEDATA; / / data is hier opgeslagen
)
void WriteEEPROM (unsigned char Adresse, unsigned char Data)
(
EEADR = Adresse;
EEDATA = Data;
EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
INTCONbits.GIEH = 0; / / disable interrupts
INTCONbits.GIEL = 0;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
EECON1bits.WREN = 0; / / disable schrijft over schrijven compleet
)
/ / main programm
void main () (
int waarde;
EEpromInit ();
LCDinit ();
value = 0;
LET
while ((value> 0) & & (waarde <3))
(
WriteEEPROM (EEADR, waarde); waarde ;
)
ReadEEPROM (EEADR);
if ((EEDATA = 0) & & (EEDATA = 1))putrsXLCD ( "waarde =% d", EEDATA); <--- FOUTelse if ((EEDATA> 1) & & (EEDATA <3))putrsXLCD ( "Mid Value =% d", EEDATA );<---- FOUTanders
putrsXLCD ( "Waarde is te groot");
value = 5; / / Toename initiële waarde voor het testen ... als volgende run de LCD moet "waarde display te groot"
goto AGAIN;
while (1);
)
************************************************** ********