Zitat Zitat von jeffrey
Allerdings kann ich nicht den Watchdog verwenden, da ich den zur Programmüberwachung verwende, oder ist es möglich die Zeit für den Reset durch den Watchdog im Programm zu ändern.
Die Zeit kann man wie gasagt ändern. Das Minimum liegt AFAIK bei 15ms.

Zitat Zitat von linux_80
Hallo,
reicht es nicht, einfach wieder an Adresse $0 zu Springen ?
Das wäre der Reset-Vector, hier gehts auch los, wenn man Reset zB. gedrückt hatte.
Das ist keine gute Idee, weil dadurch die Hardware NICHT resettet wird! Es wird dann nur der Software-Teil der Applikation zurückgesetzt (Variablen, Stack, etc.) IdR befindet sich das System dann aber nicht in einem legalen Zustand -- eben weil die Hardware nicht resettet wurde.


------

Übrigens kann man auch die Reset-Ursache rausfinden. Früh im Programm liest man MCUSCR, setzt es auf 0 und wertet es aus. Zudem kannst du die Informationen über einen Watchdog-Reset hinaus merken, indem du sie in einen Bereich legst, der vom StartUp-Code nicht initialisiert wird. Bei GCC ist das die Section ".noinit".