Čtení z EEPROM - čekání na dokončení čtení / zápisu

Zdravím

Mam zase problem se čtením z EEPROM. at čtu z jakekoliv adresy vždy se mi na EEDATA objeví poslední zapis s hodnotou 10.

Neví nekdo včem je chyba. Jedna se o PIC16f628a

[code]int pam;
void write(char adr, long dat){

EEADR = adr;
EEDATA = dat;
INTCON.GIE = 0;
EECON1.WREN = 1;
EECON2 = 85;
EECON2 = 170;
EECON1.WR = 1;
INTCON.GIE = 1;
EECON1.WR = 0;
EECON1.WREN = 0;
}

float read(char adr){

EEADR = adr;
EECON1.RD =0;
pam = eedata;
return(pam);

}

void main() {
TRISA = 0b00000000;
PORTA = 0b00000000;
TRISB = 0b11110000;
PORTB = 0b00000000;
CMCON = 0b00000111;

write(0x00,31);
write(0x01,21);
write(0x02,10);

while(1){

       if (PORTB.B4){
       
       porta = read(0x00);
       
       }else{
       porta =  read(0x01);
       
       }

/porta = read(0x02);/

}
}[/code]

:arrow_right: administrator: přejmenováno z "čtení z eeprom"

Pri zapisu musis pockat az se zapis dokonci,proc tam mas float a long pri 8bit hodnote? Netestoval sem jen co me tak trklo

To samé platí i pro čtení, taky se musí počkat na dokončení čtení.