Registerinhalt nach reset

Gast #52709
Lesenswert?
• ▲
▼
naja man könnte die aber wecklassen, wenn sowieso schon 00 drinsteht und
ich ne $00 brauche... so der gedankengang. aber du hast ja recht

der Flashspeicher hat ja nun auch nach dem löschen ein $FF was... doch
nich... einem nop entspricht.

mist - ich hab´s gewusst.
Gast #52711
Lesenswert?
• ▲
▼
danke uwe,
dann müssten die werte auch durch watchdog erhalten bleiben. genau das
wollt ich wissen. dann kann ich da zB meine EEprom zeiger ablegen, und
überschreibe nach einem reset die alten werte nicht (unbedingt) in
meinem eeprom.
Gast #52712
Lesenswert?
• ▲
▼
Ja, Du mußt dann nur sauber den watchdog-Reset erkennen.

Die IO-Register werden übrigens auf definierte Werte rückgesetzt.

Das steht ziemlich eindeutig im Datenblatt:

``During Reset, all I/O registers are set to their initial values, and
the program starts execution from the Reset Vector.''

Die IO-Register werden also eindeutig beschrieben, alles andere ist
random bzw. so, wie es vorher war.

Eben nochmal ins Datenblatt geguckt: falls Du mit »AVR 8515« einen
AT90S8515 meinst, hast Du Pech gehabt.  Der hat kein MCUSR-Register,
in dem man die Reset-Quelle auslesen könnte.  Damit kannst Du einen
watchdog reset nicht vom power-on reset unterscheiden.  Falls Du
dagegen einen ATmega8515 meinst (bzw. Dich angesichts dieser
Problematik für einen solchen stattdessen entscheidest), der hat ein
MCUCSR mit den nötigen Bits.  Beachte, daß Du die Bits möglichst
umgehend nach einem Reset auslesen und allesamt löschen solltest, sie
werden nicht von der Hardware gelöscht.
Gast #52713
Lesenswert?
• ▲
▼
hey danke, hab aber leider erst jetz gelesen.
nein, meinen AT90S8515 habe ich schon "ein jahr länger"... also werd
ich mich wohl nicht mehr umentscheiden.
geht um eine Regelung für die Fußbodenheizung. Die platine habe ich
schon vor nem jahr erstellt, nur jetz endlich angefangen richtig zu
programmieren.

Problem:
Wenn das ganze fertig ist wird es jedoch ewig laufen. und wenn ich den
aktuellen EEpromzeiger für die protokollierten werte immer in mein
Uhreneeprom (I2C Uhr) schreibe wird der sicherlich irgendwann
aufgeben... angenommen alle 10 min Messwerte speicher.
alle 10 min eepromzeiger speichern -> 5x in der stunde -> 120x am tag->
42720x im jahr
dann halten die Speicherzellen im Uhreneeprom in denen der EEprom
Zeiger liegt das ganze knapp 2,34 Jahre aus. Ist das nicht zu kurz? Wie
würdet ihr das lösen?
einen Zeiger, der auf die Adresse des 2ten Zeigers zeigt, der Auf die
Adresse des aktuellen Speicherplatzes zeigt?
Gast #52714
Lesenswert?
• ▲
▼
Hi!
Warum Messwerte speichern, es soll sich doch kümmern, oder?
Wenn schon speichern dann serielles EEProm und $FF als
"Aufzeichnungsende" suchen lassen.Ich würde es jedenfalls so
angehen.

MFG Uwe
Gast #52715
Lesenswert?
• ▲
▼
> ... meinen AT90S8515 habe ich schon "ein jahr länger"... also werd
> ich mich wohl nicht mehr umentscheiden.

Wenn Du den Chip einfach ersetzen kannst (am Ende hast Du einen
gesockelten DIL benutzt, oder?), dann wäre die Umentscheidung auf
einen ATmega8515 ja kein Thema.

Mir ist noch eingefallen, daß Du natürlich eine RAM-Prüfsumme
hinterlegen kannst, es genügt ja, einen Teil des RAMs zu prüfen, den
Du ansonsten in Deinem Programm nicht weiter benutzt.  Du beschreibst
ihn mit einem Muster Deiner Wahl, dessen Prüfsumme Du kennst, und wenn
diese nach einem Reset übereinstimmt, war es kein Power-on-Reset.
Allerdings kannst Du einen externen Reset (falls dieser in Deiner
Schaltung möglich ist) dann trotzdem nicht von einem Watchdog-Reset
unterscheiden.  Wichtig ist auch, daß Du den zu prüfenden RAM-Bereich
wirklich selbst überschreibst und nicht nur eine Prüfsumme über das
Zufallsmuster legst, das nach dem Power-on dort liegt: diese
Zufallsmuster sind sehr oft bei jedem Einschalten gleich.
Gast #52716
Lesenswert?
• ▲
▼
an den DIL sockel habe gedacht, aber erstmal bleibe ich beim altem.

die sache mit der Prüfsumme im ram ist eine gute idee, ich werdes wohl
übernehmen. zusätlich den bereich abspeichern, in dem ich die Daten als
letztes gespeichert habe und dann nach einem Zeichen für
Aufzeichnungsende suchen. alles gute ideen. ich mache mich dann mal
ran...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren