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
Bei einem Reset geht alles verloren, daher heißt es ja auch Reset ;-)
@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).
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
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... ...
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...
Wie könnte man denn eine Backup-Batterie anschliessen, die nur die Uhrzeit weiterlaufen lässt und evt. andere Werte speichert?
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
Moin Stefan, die Uhr ist per Software realisiert; asynchroner Zähler mit Uhrenquarz an TOSC1 und 2. zaydo
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.