Variable im während der Laufzeit in Flash speichern?

Gast #212644
Lesenswert?
• ▲
▼
Hallo zusammen,

ich möchte eine Wert der einmalig ermittelt wird so abspeichern, das
diese auch nach der Stromabschaltung bei einem Neustart vorhanden ist.
Die Anwendung ist für einen resistiven Touchscreen, der beim ersten
einschalten Kalibriert wird. Diese Werte sollen auch nach einer
Stromabschaltung für immer Vorhanden sein.

Benötige ich dafür extra speicher, oder kann ich diese Werte in den
Flash des Mikrocontrollers speicher ohne ihn komplett neu zu Flashen?

Gruß
Kevin
Gast #212645
Lesenswert?
• ▲
▼
kommt auf den Controller an - um welchen gehts denn? Manche können es,
andere nicht.
Ansonsten ist es einfacher, solche Sachen im EEPROM zu speichern (falls
vorhanden, auch da die Frage nach dem Typ).
Gast #212646
Lesenswert?
• ▲
▼
Hi crazy horse,

ich mache das mit einem ATmega64 oder ATmega128 von Atmel.
Wenn das bei diesen nicht funktioniert? Wie geht das mit dem EEPROM?
Wie schliesse ich den an? Benötigt man dafür eine spezielle
Schnittstelle?

Wie du siehst, bin ich erst an den Anfängen mit der Entwicklung von
Mikrocontrollergestützten Systemen.

Kevin
Gast #212648
Lesenswert?
• ▲
▼
Hi crazy horse,

danke für deine Antwort, habe eben versehentlich den Beitrag nochmal
Abgeschickt.
Wie Programmiere ich das, so das diese Werte ins EEPROM gespeichert
werden?
Ich benutze den CodeVision AVR Compiler (C-Compiler).
Gast #212650
Lesenswert?
• ▲
▼
Deklaration:
eeprom unsigned int calibration=1000;    //default z.B. 1000

im Programm:

calibration=1234;   //mit Konstante beschreiben
oder
calibration=result;   //mit Variablenwert beschreiben

Wird also wie eine ganz normale Variable gehandhabt.
Sind die Daten ganz wichtig, kannst du den Wert auch mehrfach speichern
und dann den gültigen Wert herauspicken. Bei den Megas hatte ich noch
keine Probleme mit dem EEPROM, bei den 90ern  war das an der
Tagesordnung.
Gast #480089
Lesenswert?
• ▲
▼
aus aktuellem Anlass nochmal aufgewärmt...

Wie müsste die Deklaration in einer Subroutine dann aussehen?

extern eeprom unsigned int calibration;   ?

Frage 2:
Woher weiss der Compiler dann wo im EEProm er die Variable ablegen soll 
oder beginnt er einfach bei 0x0000 und merkt sich das für die nächste 
Deklaration?

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.