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
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).
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
Mega64 und Mega128 enthalten bereits ein EEPROM (zusätzlich zum Flash-ROM). Das muss nicht extern angeschlossen werden.
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).
Zwar ein anderer Compiler, aber trotzdem: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#EEPROM
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.
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
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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.