Witam bawiê siê w³a¶nie w programowanie pamiêci EEPROM ATMegi8 w C i mam problem bo programuje mi siê tylko pierwszy bajt (nie wiedzieæ czemu) ni¿ej zamieszczam funkcje która wywo³uje (jest na 100% dobra bo wzi±³em j± z dokumentacji) nie wiem mo¿e jako¶ ¼le wywo³ujê tê funkcje ? w ka¿dym razie po uruchomieniu programu a nastêpnie po zczytaniu EEPROMA widaæ jak byk ¿e programuje siê tylko jeden bajt bo jest tam wpisane 'Z' natomiast pozosta³e bajty nie s± zaprogramowane !!! o co tu chodzi ? Zasilam uC z baterii nie wiem mo¿e mam nieodpowiednie ¼ród³o zasilania, ale to raczej nie to bo pierwszy bajt siê programuje bez problemu. Dziêkuje wszystkim za pomoc.
void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous write */ while(EECR & (1<<EEWE)); /* Set up address and data registers */ EEAR = uiAddress; EEDR = ucData; /* Write logical one to EEMWE */ EECR |= (1<<EEMWE); /* Start eeprom write by setting EEWE */ EECR |= (1<<EEWE); }
int main(void) {
EEPROM_write(0,'Z'); EEPROM_write(1,'Z'); EEPROM_write(2,'Z'); EEPROM_write(3,'Z'); EEPROM_write(4,'Z'); EEPROM_write(5,'Z');
return(0); }