EEprom lesen und schreiben bei AVR

Gast #536318
Lesenswert?

was gibts da zu verstehen? das muss man doch nur rauskopieren und gut.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Block_lesen.2Fschreiben
1
//...
2
   float myFloat = 12.34;
3
 
4
   union {
5
      float r;
6
      uint8_t i[sizeof(float)];
7
   } u;
8
 
9
   u.r = myFloat;
10
   
11
   /* float in EEPROM */
12
   eeprom_write_block(&(u.i),&eeFooFloat,sizeof(float));
13
 
14
   /* float aus EEPROM */
15
   eeprom_read_block(&(u.i),&eeFooFloat,sizeof(float));
16
   /* u.r wieder 12.34 */
17
//...
#536322
Lesenswert?

Hi,

geht nur über einen Umweg da für Float keine Routinen in 'eeprom.h' drin 
sind. Hier mal ohne Nutzung von Union:

#include <avr/eeprom.h>


float myEEpromFloat EEMEM;      // Float Wert in EEprom
float myRamFloat;               // Float Wert im Ram

int main(void){

  // der Variablen im Ram einen Wert zuweisen
  myRamFloat = 27.68;

  // Variable aus dem Ram ins EEprom kopieren
  eeprom_write_block(&myRamFloat,&myEEpromFloat,sizeof(float));

  // Variable aus dem EEprom ins Ram kopieren
  eeprom_read_block(&myRamFloat,&myEEpromFloat,sizeof(float));

}

Gruß Rene
Gast #536335
Lesenswert?

Beim Einbinden des Headers "#include <avr/eeprom.h>" stürzt AVR - Studio 
ab. Kann es sein, dass ich in den Konfigurationen dem Linker diesen 
header noch zugänglich machen muss?

Wenn ja mit welchen Einstellungen?

Gruß Sönke
Gast #536962
Lesenswert?

Danke, nun geht es.

Nun eine Erweiterung. Ich möchte bei Betätigung eines Tasters "Save" den 
Wert einer Variablen ( z.B. 23.12) ins eeprom schreibe.

Mit dem Taster "Read" möchte ich diese wieder lesen. Das klappt auch 
alles super.

Nun möchte ich jedoch folgendes:

Ich möchte ein Array anlegen. Es sollen insgesammt 10 Werte gespeichert 
werden.

Es soll auf dem Display so aussehen:

1. Speicher:    23.12
2. Speicher:    99.23

...

10. Speicher:   11.22

Diese Werte möchte ich über den Taster "Read" aufrufen und verarbeiten. 
Ich möchte z.B. sagen

"Rufe Speicher "3" auf.

Wie reallisiere ich das genau? Bzw. könntet ihr mir beim Ansatz helfen?

Mfg Sönke

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