www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik wird nach Watchdog alles resetet?


Autor: Hako (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich benutze einen Freescale MC5600E µC. Wenn ich den Wathcdog aktiviere 
wird's auch ein Hardware-Reset durchgeführt.

Wird den nach einem Watchdog-Reset alles zurückgesetzt oder habe ich 
eine Möglichkeit einige Variablen so zu lassen, wie sie sind?

Wenn ich eine Variable in der Watchdog-ISR inkrementiere, wird es nach 
dem Reset auch zurückgetzt oder bleit es erhalten?

Wie kann ich einige Register so lassen wie sie sind oder habe ich durch 
einen Watchdog-Reset keine chance?

Vielen Dank

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hako (Gast)

>Wird den nach einem Watchdog-Reset alles zurückgesetzt oder habe ich
>eine Möglichkeit einige Variablen so zu lassen, wie sie sind?

Der Inhalt vom SRAM, wo deine Variablen drin stehen, bleibt unverändert.

>Wenn ich eine Variable in der Watchdog-ISR inkrementiere, wird es nach
>dem Reset auch zurückgetzt oder bleit es erhalten?

>Wie kann ich einige Register so lassen wie sie sind oder habe ich durch
>einen Watchdog-Reset keine chance?

Die CPU-Register bleiben auch unverändert.

MFG
Falk

Autor: Hako (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die CPU-Register bleiben auch unverändert.

ja aber durch den Reset fängt mein Programm von ganz Anfang an, dh. wo 
die Initialisierung stattfindet. Wird es dadurch nicht alles 
zurückgesetz?

wenn ich eine static/globale Variable habe und ich am Programmstart die 
Varibalen initialisiere, werden sie nicht immer wieder neu 
initialisiert?

>Der Inhalt vom SRAM, wo deine Variablen drin stehen, bleibt unverändert.
Heißt es dass der Programmierer dafür verantwortlich ist, nach einem 
Reset, alles zurückzusetzen, was zurückgesetzt werden müsste?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es könnte hilfreich sein, wenn du die Programmiersprache
nennst in der du programmierst.

Was die CPU macht, wenn ein Watchdog-Reset ausgelöst wird
ist eine Sache. Welche Vorgaben aber eine Programmiersprache
hat, wenn das Runtime System das Programm hochfährt ist eine
andere Sache.
In C ist es so, dass der Compiler dafür sorgen muss, dass
alle globalen/static Variablen definiert auf 0 gesetzt werden.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hako (Gast)

>ja aber durch den Reset fängt mein Programm von ganz Anfang an, dh. wo

Ja logisch, ist ja schliesslich ein RESET.

>die Initialisierung stattfindet. Wird es dadurch nicht alles
>zurückgesetz?

Klar. Aber du kannst ja GANZ am Anfang das MCUSR (oder so ähnlich ) 
auslesen und prüfen, obe es ei Watchdog-Reset war. Dan kannst du 
entsprechend normal starten oder ohne initialisierung. In Assembler 
einfach, in C muss man eine Funktion in die init Sektionen bringen. 
Siehe Doku der libc.

>wenn ich eine static/globale Variable habe und ich am Programmstart die
>Varibalen initialisiere, werden sie nicht immer wieder neu
>initialisiert?

Ja, siehe oben.

>>Der Inhalt vom SRAM, wo deine Variablen drin stehen, bleibt unverändert.
>Heißt es dass der Programmierer dafür verantwortlich ist, nach einem
>Reset, alles zurückzusetzen, was zurückgesetzt werden müsste?

Logisch, war aber schon immer so. In C macht das der Compiler.

MFG
Falk

Autor: Hako (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es könnte hilfreich sein, wenn du die Programmiersprache
>nennst in der du programmierst.
ich programmiere  in C

>Siehe Doku der libc
was ist ein libc? (peinlich aber ich weiß es nicht :-$)

>Dan kannst du entsprechend normal starten oder ohne initialisierung

so werde ich auch vorgehen ;-)

DANKE

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hako (Gast)

>was ist ein libc? (peinlich aber ich weiß es nicht :-$)

Das ist die Bibliohek für den AVR, wenn du mit WINAVR programmierst.

MFG
Falk

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Falk Brunner:

Falk Brunner wrote:
> Das ist die Bibliohek für den AVR, wenn du mit WINAVR programmierst.

Hako (Gast) wrote:
> ich benutze einen Freescale MC5600E µC.

MC5600E != AVR ?

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.