Hallo, ich bastel ein Programm für den AVR m8 zusammen, dass u. a. eine Uhr enthält. Nun hätt ich gerne, dass die Variablen Std/Min/Sek ihre Werte behalten, wenn ich Reset betätige. (Eeprom ist anderweitig verplant und eine Backupbatterie gegen Stromausfall gibt es eh). Mein Fragen: a) Behält der RAM die Werte bei einmal Reset-Taster drücken? Behält er sie bei ISP-flashen? b) Wie schalte ich die Initialisierung seitens des avr-gcc aus? Habe schon hier nachgeguckt und nichts gefunden: http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_varinit Ich hatte zwischendurch die Idee, die Zeit über einen Pointer auf _end + meine_Stelle zu speichern, aber im Manual steht drin, dass z. B. printf auf malloc zugreift. Also ist das keine gute Idee.
wie wäre es mit einem zusatzlichem eeprom
:
Bearbeitet durch User
Für 2..3 Byte kein Platz im EEPROM? Schade! Dumm gelaufen. Vergiss das Projekt... :-(
Dafür hat man im PC einen Schaltkreis mit Batterie, wäre das eine Lösung?
Karl-Heinz Meyer schrieb: > a) Behält der RAM die Werte bei einmal Reset-Taster drücken? Behält er > sie bei ISP-flashen? Ja. Nein. Karl-Heinz Meyer schrieb: > b) Wie schalte ich die Initialisierung seitens des avr-gcc aus? Variablen in die .noinit Section legen. http://www.nongnu.org/avr-libc/user-manual/mem_sections.html
:
Bearbeitet durch User
Bernie schrieb: > Für 2..3 Byte kein Platz im EEPROM? 2..3 Byte schon, aber kein Platz für einen Ringspeicher... 1000000 ( 24 * 60 ) < 70 d.h. Eeprom bald kaputt. So richtig wichtig ist's nicht, ich dachte nur, vielleicht kenn jemand auf die Schelle eine Trick. Eine Idee hab ich noch, ich meine, malloc() initialisiert nicht, dass könnte dann gehen. Ich werds ausprobieren.
Wo ist die .noinit Sektion , bzw wo lege ich diese in sinnvoller Weise hin? Bei mir sind die Variablen _sbss und _ebss nicht definiert, und deshalb 0.
Jetzt geht es auch bei mir :-) So einfach, manchmal hilft weniger.
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.