Man kann mit Goto 0 an den Programmanfang springen und wenn das NOINIT nicht gesetzt ist werden dann auch die Variablen auf Null gesetzt, aber, es hat ja einen Grund warum Du das Programm neu starten willst, eine Fehlfunktion z.B. und es werden eben nur die Varablen neu gesetzt, der Stack bleibt. Wenn Dein Programmfehler in nem Überlauf besteht, dann geht das so in einem fort
Besser ist es einen kompletten Reset durchzuführen, auch für die Peripherie, sprich, zum Einen per Watchdog einen Reset herbeiführen und in der Startroutine Deines Programmes z.B. nen externen AD-Wandler vor der Initialisierung zu resetten.
Der Vorteil ist auch, dass ggf. ein Bootloader dann ausgeführt werden kann für Firmwareupdates, da der noch vor dem Programmstart ausgeführt wird.
Lesezeichen