Forum: Mikrocontroller und Digitale Elektronik Atmega32 EEprom


von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Egal an welcher Stelle ich den EEprom beschreibe. Beim Auslesen steht 
immer

0x01 0x01 0x01 0x02 0x02 0x02 0x02 usw.

Die ersten drei Byte werden mit der zweiten Schleife nicht 
überschrieben.

Ich habe keine Idee mehr, woran das liegen könnte. Das überschreiben der 
ersten drei geschriebenen Bytes klappt einfach nicht.

Vielleicht hat jemand eine Idee!?

Vielen Dank im voraus,
tom

von Steffen (Gast)


Lesenswert?

#define EE_ADDR 0

int main(void)
{
 uint16_t i;


  for (i= 0; i<= 10; i++)
   eeprom_write_byte(i, 0x01);


  for (i= 0; i<= 10; i++)
   eeprom_write_byte(i, 0x02);

  return 0;
}

von Lutz (Gast)


Lesenswert?

Ist der Adressraum des EEPROM eventuell größer als 255 ???

von Tom (Gast)


Lesenswert?

@Steffen @Lutz Danke!

Die uint8_t i; taugt für Speicherstellen über 255 nicht. Ich weiß.

Nur es bleibt wie es ist. Bei der zweiten Schleife werden die ersten 
drei Stellen nicht überschrieben.

Selbst wenn ich die zweite Schleife, durch

eeprom_write_byte(0,0x02); ohne Schleife ersetze  steht da immer noch an 
der ersten SpeicherStelle 0x01!

eeprom_write_byte(4,0x02);  ersetzt andstandslos die 0x01 durch die 0x02 
an der vierten SpeicherStelle.

Die ersten drei Stellen sind irgendwie wie zugenagelt.
Einen anderer µC macht das gleiche.

von Lutz (Gast)


Lesenswert?

Den Inhalt der for-Schleifen solltest Du mal in geschweifte Klammern 
setzen. Die werden mit dem erforderlichen eeprom_busy_wait() for jedem 
Schreibvorgang  sowieso erforderlich. EEPROM ist nämlich verhältnismäßig 
langsam, schau mal ins Datenblatt wegen dem timing und busy-abfragen.

von Lutz (Gast)


Lesenswert?

Übrigens: Die interrupt.h brauchst Du bei dem Programm auch nicht. 
Welche Meldungen spuckt der Compiler eigentlich aus, da er ja als erstes 
Argument bei eeprom_write_byte() einen Pointer erwartet?

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
Noch kein Account? Hier anmelden.