doktor.rakev Častý přispěvatel

Založen: 23.3.2010 Příspěvky: 37
|
Zaslal: 14 listopad 2010, 19:23 Předmět: Přístup do EEPROM AT89C51ED2 - nelze zapsat data z XRAM |
|
|
Zdravim,
resim ted problem zapisu do interni EEPROM, mam kod, kterej funguje, ale nemuzu zapsat data ktery jsou v promenne, ktera je v XRAM (aspon si to myslim )
kód: | void write_eeprom(unsigned int adr,unsigned char value){
bit ea_help;
while(EECON & 0x01){
}
ea_help=EA; //ulozime si bit ea
EA=0;
EECON |= 0x02;
*(unsigned char xdata*)adr=value;
EECON |= ~0x02;
EA=ea_help;
} |
Takhle vypada funkce, tohle funguje:
write_eeprom(0x00,0x99);
tohle taky funguje:
kód: | unsigned int x;
x=0x00;
write_eeprom(x,0x99); |
tohle uz nefunguje:
kód: | unsigned char xdata coords[3][2][10];
unsigned int x;
coords[0][0][0]=0x99;
x=0x00;
write_eeprom(x,coords[0][0][0]); |
Respektive funguje to pouze pro prvni clen toho pole (zapisuju ty data v cyklu), pro
coords[0][0][1];
uz mi to zapise pouze 0xFF, zkousel jsem vytvorit pomocnou promenou ktera neni v XRAM a prevest do ni hodnotu z coords a pote ji zapsat ale taky nejde.
URcite to bude jenom nejaka kravinka ale resim to tady cely odpoledne
administrator: přejmenováno z "Přístup do interní EEPROM at89C51ED2"
Naposledy upravil doktor.rakev dne 18 listopad 2010, 16:35, celkově upraveno 1 krát. |
|