ATmega Variablen in unterschiedlichen Speichern ablegen!

Gast #284056
Lesenswert?
• ▲
▼
Hallo,

ich programmiere meinen ATmega8 in C mit WinAVR.

Ich weiss, dass es drei unterschiedliche Arten von Speicher gibt. Den
Flash(in dem das Programm abgelegt ist), den RAM und das EEPROM.

Meine Frage ist nun:
Wann wird eine Variable im RAM und wann im EEPROM abgelegt?

Ich bin daran interessiert Daten ins EEPROM abzupeichern und nach einem
Neustart des Mikrocontrollers wieder auf diese zugreifen zu können.

Über Antworten oder hilfreiche Links würde ich mich sehr freuen.

MfG

Joe
Gast #284057
Lesenswert?
• ▲
▼
> Wann wird eine Variable im RAM und wann im EEPROM abgelegt?

Normalerweise immer im RAM. Es gibt ein Variablenattribut, mit dem man
festlegt, daß eine Variable im EEPROM stehen soll. Aber das bedeutet
nicht, daß du die einfach wie gewohnt verwenden kannst. Die Daten
müssen mit entsprechenden Funktionen zwischen RAM und EEPROM kopiert
werden. Das ist aber eigentlich alles im Tutorial erklärt.

> Über Antworten oder hilfreiche Links würde ich mich sehr freuen.

Da soll es ein prima Tutorial zum AVR-GCC geben, auf einer Seite namens
http://www.mikrocontroller.net , wo auch die EEPROM-Benutzung
ausführlich erklärt ist ;-)
Gast #284060
Lesenswert?
• ▲
▼
HIer mal ein Aszug aus meinem Programm:

#include <avr/eeprom.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

int main (void)
{
int nummer;

eeprom_write_byte(0,5); //schreibt die Zahl 5 an die Stelle 0

nummer = eeprom_read_byte(0); //liest die Zahl zurück

}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 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.