Forum: Mikrocontroller und Digitale Elektronik Mega32: Was geht beim Reset verloren?


von zaydo (Gast)


Lesenswert?

Moin,

gegeben ist eine Steuerung mit LCD, die als Dreingabe auch eine Uhr
sowie Stoppuhr enthält. Ab und an wird absichtlich über den Watchdog
ein Reset ausgeführt. Dazu die Frage, die ich mir weder mit dem
Datenblatt noch der Forumsuche eindeutig beantworten konnte:

Bleiben die Werte von im SRAM abgelegten Variablen bei dieser Art Reset
erhalten?

Mir geht es dabei in erster Linie um die Werte für Uhrzeit; diese soll
bei einem Reset nicht immer komplett neu gestellt werden müssen. Die
durch einen Reset verursachte geringe Abweichung ist dabei akzeptabel.


Danke, zaydo

von Michael (Gast)


Lesenswert?

Bei einem Reset geht alles verloren, daher heißt es ja auch Reset ;-)

von Magnus Müller (Gast)


Lesenswert?

@Michael:

Bitte nicht pauschalisieren. Der SRAM Inhalt wird durch den
eigentlichen Resetvorgang NICHT verändert. Die "Änderungen" werden
wenn überhaupt von der Software vorgenommen (Initialisierung der
Variablen).

von zaydo (Gast)


Lesenswert?

Moin,

[...]
>Der SRAM Inhalt wird durch den eigentlichen Resetvorgang NICHT
verändert. Die "Änderungen" werden wenn überhaupt von der Software
vorgenommen (Initialisierung der Variablen).

Das hatte ich hier auch schon mal gelesen, als es um die Frage der
Initialisierung des SRAM auf feste Werte ging.

Das heisst also, dass wegen der Initialisierung der Variablen beim
Reset die Daten futsch sind, oder?
Dann werde ich die wohl vor dem Reset im EEPROM sichern müssen...


Danke, zaydo

von Hannes L. (hannes)


Lesenswert?

Es wird wohl auf die Programmiersprache ankommen und darauf, was diese
beim Initialisieren macht.

In ASM bleiben Register und SRAM erhalten, wenn sie nicht durch das
Anwenderprogramm initialisiert werden.

Was Hochsprachen da machen, weiß ich nicht...

...

von Rahul (Gast)


Lesenswert?

Im Datenblatt (wo auch sonst) gibt es eine Tabelle mit den Teilen des
Controllers, die von einem Reset beeinflusst werden.
Der Mega32 unterstützt ja verschiedene Arten des Resets (Power On, BOD,
Watchdog...). Für jede gibt es da eine Tabellenzeile...

von Stefan Bachmaier (Gast)


Lesenswert?

Wie könnte man denn eine Backup-Batterie anschliessen, die nur die
Uhrzeit weiterlaufen lässt und evt. andere Werte speichert?

von zaydo (Gast)


Lesenswert?

Moin Rahul,

>Im Datenblatt (wo auch sonst) gibt es eine Tabelle mit den Teilen des
Controllers, die von einem Reset beeinflusst werden.
>Der Mega32 unterstützt ja verschiedene Arten des Resets (Power On,
BOD,
Watchdog...). Für jede gibt es da eine Tabellenzeile...

Im Datenblatt steht kein Wort davon, was mit dem SRAM beim Reset
passiert...

zaydo

von zaydo (Gast)


Lesenswert?

Moin Stefan,

die Uhr ist per Software realisiert; asynchroner Zähler mit Uhrenquarz
an  TOSC1 und 2.


zaydo

von Profi (Gast)


Lesenswert?

Du kannst versuchen, dem Compiler vorzugaukeln, einen Teil des SRAMs
wären nicht vorhanden oder IOregister, der wird sich hüten, da was
reinzuschreiben.
Auf diese RAM-Adressen geifst Du direkt zu.

Welche Sprache verwendest Du?

von R2D2 (Gast)


Lesenswert?

Bei GCC gibt es eine möglichkeit speicherbereiche nicht zu
initialisieren.
beim msp-gcc schaut das z.B. so aus:
uint8_t  minutes      noinit;
das macro ist so definiert:
#define noinit  _attribute_ ((section(".noinit")))

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
Noch kein Account? Hier anmelden.