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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.