ein Autoreset funktioniert nicht sicher. Einen Reset braucht man nicht.
es ist eine schlechte Idee Goto zu verwenden.
Wieso willst Du den Arduino resetieren??
Wieso willst Du per interrupt inden Loop() Schleife springen, wo Du doch bereits dort bist?
Gib uns den gesamten Sketch.
Grüße Uwe
Beim Schmökern im Datenblatt bin ich über den Watchdog Timer gestolpert, der als Reset Source in 10.2 gelistet ist. Bleibt die Frage, ob/wie man diesen Reset bei Bedarf (möglichst einfach) provozieren kann?
Könnte es ausreichen, WDIF/WDIE per Programm zu setzen?
Inwiefern nicht sicher? Bisher einmal versehentlich draufgekommen und hat sofort funktioniert.
Wenn ich vom Xperia zu viele Signale schicke, also auf Senden "hämmer" gibt der Controller keine Antwort mehr, schätze überladen.
Aus diesem Statdium kam ich bisher nur über ein Reset wieder zum lauffähigen Zustand zurück.
Bin mir nicht ganz im klaren, ob "break" bzw. "exit(1)" mich wieder an den Anfang der Loop bringt. Im normalen C/C++ bewirkt dies das "breaken" aus der Schleife, Entscheidung bzw. zum Ende des Programms.
The exit() function terminates the application. Since there is no environment to return to, status is ignored, and code execution will eventually reach an infinite loop, thereby effectively halting all code processing. Before entering the infinite loop, interrupts are globally disabled.
In a C++ context, global destructors will be called before halting execution.
Das ist also nicht, was du suchst, sondern nur ein bisschen härter als
@Fabian, ich meinte mit meinem Link eigentlich die 2 Variante mit dem WDT und nicht die mit der Verdrahtung.
Einen Reset auf einem AVR auslösen ist ansonsten nicht der richtige Stil. Wenn das Programm sich weggehangen hat, bringt dir der Software Reset garnichts. Egal ob mit WDT oder Hardware Verbindung.
Schreibe dein Programm richtig, sodass du sagen kannst, mit einer FUnktion setzt du alle Werte wieder auf den Startwert.