Hallo, möchte gerne mehrere unsigned long Werte im Eeprom meines ATmega 16 ablegen. Die Werte lade ich über die Serielle Schnittstelle in den uP. Die Funktionen für int Werte habe ich aus dem Datenblatt des ATmega 16 Ich weiß aber nicht in welchem Adressbereich der Eeprom liegt... Ein weiteres Problem sind die Long Werte... Wie speichere ich diese am Besten? Wenn einer ein paar tips hätte wäre das super! Vielen Dank im Vorraus Björn
Das EEprom wird über die IO Register gesteuert. im datenblatt ist eine genaue beschreibung mit allen einzuhaltenden Zeiten, um auf das EEprom zu zugreifen. Register: EEARH, EEARL EEDR, EEARL
Bsp. In assembler Hier wird im EEprom an der Addresse 0 der wert im r20 Register geschrieben. Write: SBIC EECR,EEWE RJMP Write LDI r16,0 LDI r17,0 OUT EEARH,r16 OUT EEARL,r17 OUT EEDR,r20 SBI EECR,EEWE
Die Funktion habe ich... aber die Startadresse fehlte mir. void EEPROM_write (unsigned int uiAddress, unsigned char ucData) { while (EECR & (1<<EEWE)); // Warte bis der letzte schreibvorgang // beendet EEAR = uiAddress; // Setze Adressregister EEDR = ucData; // Setze Dataregister EECR |= (1<<EEMWE); // setze EEMWE auf 1 EECR |= (1<< EEWE); // starte EEPROM schreibvorgang durch //setzten EEWE } trotzdem danke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.