www.mikrocontroller.net

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


Autor: zaydo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

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

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: zaydo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...

...

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Stefan Bachmaier (Gast)
Datum:

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

Autor: zaydo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: zaydo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Stefan,

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


zaydo

Autor: Profi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: R2D2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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")))

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.