www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Variable im während der Laufzeit in Flash speichern?


Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mega64 und Mega128 enthalten bereits ein EEPROM (zusätzlich zum
Flash-ROM). Das muss nicht extern angeschlossen werden.

Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zwar ein anderer Compiler, aber trotzdem:

http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kevin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für eure Hilfe. Ich werde mich in dieses Thema nochmals einlesen
aber jetzt weis ich wenigstens nach was ich schauen muss und wie das
Funktioniert.

Gruß Kevin

Autor: cerberus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.