Atmega32 EEprom

Gast #1143873
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
Angehängte Dateien:
Gast
#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;
}
Gast
@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.
Gast
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.
Gast
Ü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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.