eeprom und die write Funktion

Gast #2307077
Lesenswert?

Guten morgen zusammen,

ich habe ein kleines Problem mit dem eeprom und der schreib und lese 
Funktion und zwar spuckt der compiler warnungen aus wenn ich zum 
beispiel
adresse = eeprom_read_byte(0); schreiben möchte.

Ich habe auch schon herausgefunden woran es liegt und zwar erwartet er 
beim aufruf der funktionen einen bestimmtenzahlen wert der "gecastet" 
werden muss.

aber was dieses casten machen soll habe ich noch nicht ganz verstanden 
und weiß deshalb nicht ob das für mein Vorhaben überhaupt in so von 
Nöten ist.

Zur erläuterung ich habe im EEPROM auf der Stelle '0' die Speicher 
adresse steht wo die Variable 'indexer_position ' abgespeichert werden 
soll. In meinem Fall steht dort eine '10'.
Das heisst EEPROM Adresse '0' steht eine 10 und auf EEPROM Adresse '10' 
steht die aktuelle 'indexer_position'.

in meinem Programmteil hier Lese ich von der Adresse '0' den wert und 
schreibe dann die Indexer Position an die Adressnummer die ich von '0' 
gelesen hab.

Dann Lese ich den Krempel zurück und vergleiche ob der schreibversuch 
geklappt hat, denn wenn er nicht geklappt hat soll er auf der adresse 
'0' den wert erhöhen und dann erneut speichern. Das soll dazu dienen 
einer defekten speicherzelle aus dem weg zu gehen.

Oder könnte man das alles irgenwie eleganter machen ? weil momentan ja 
nur einmal geprüft wird ob die zelle kaputt ist.
aber ich mache nur ca 10 Speicherungen am Tag.
1
indexer_position = 0;
2
  
3
  adresse = eeprom_read_byte(0);
4
  eeprom_write_byte(adresse, indexer_position); // schreiben
5
          
6
  eeByte_read = eeprom_read_byte(adresse);
7

8
  if(indexer_position != eeByte_read){
9
    adresse = eeprom_read_byte(0);
10
    adresse++;
11
    eeprom_write_byte(0, adresse); // schreiben 
12
      
13
    adresse = eeprom_read_byte(0);
14
    eeprom_write_byte(adresse, indexer_position); // schreiben
15
  }



Vieleicht mag sich das ja mal jemand angucken :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren