02. april 2008 - 17:35Der er
1 kommentar og 1 løsning
Programere EEPROM til Atmega8515L
Hej eksperter (forhåbentlig)..
Jeg sidder og roder med et projekt i C, på en Atmel Atmega8515L (denne sad på boardet, og ligenu skal jeg bare i gang, så kan det være jeg skifter processor senere).
Er der nogen som ved hvordan man skriver og læser til EEPROM'en? jeg har databladet og der står følgende (tilsyneladende halve?) eksempel:
cSREG = SREG; /* store SREG value */ /* disable interrupts during timed sequence */ _CLI(); //disabler alle interrupts immidiately (har jeg læst // idatablad)
/*Det er så her jeg antager at man skal skrive til en adresse, og skrive noget data, men hvordan??, og hvorfor bliver _CLI() ikke kørt igen til sidst, interrupts'ne skal vel slåes til igen?*/
enum { //setting up the leds, so we can use them as a 'display' ld1 = (unsigned char) ~0x01, ld2 = (unsigned char) ~0x02, ld3 = (unsigned char) ~0x04, ld4 = (unsigned char) ~0x08, ld5 = (unsigned char) ~0x10, ld6 = (unsigned char) ~0x20, ld7 = (unsigned char) ~0x40, ld8 = (unsigned char) ~0x80, ldOff = 0xFF
};
void pause() { int i; for (i = 0; i<5; i++); }
int main() { DDRB = 0xFF; //PORTB out
eeprom_write_byte(&addr, testChar); //writing 'testChar' to the EEPROM on adr. 'addr'
pause(); //just to be safe
recieveDataByte = eeprom_read_byte((uint8_t*)&addr); //reading from the EEPROM at adr. 'addr'
leds = ~recieveDataByte; //show value on leds (should be 110 = 0x6E = 0110 1110)
return 0; }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.