Megpróbálok beállítani egy módot az arduino parancsra történő újraindítására. Az alábbi kódnak ezt meg kell tennie, de úgy tűnik, hogy az arduino-m csak elakadt valamilyen hurokban, ahova nem tudok feltölteni vagy soros kimenetet kapni. A zöld led (13. tű) nagyon gyorsan villog. Ennek egyetlen módja a készülék áramellátásának megszakítása, még a reset gomb sem működik. Ez csak akkor történik, ha az "R" soros úton érkezik, vagy ha a wdt_reset () függvényt megjegyzik.
#include <avr / io.h> # include <avr / wdt.h>int ledPin = 3; beállítás () {MCUSR = 0; wdt_disable (); Serial.begin (57600); Serial.println ("Csizma!"); pinMode (ledPin, OUTPUT); digitalWrite (ledPin, LOW); delay (500);} void loop () {if (Soros.elérhető () > 0) {char cmd = Soros.olvasott (); if (cmd == 'R') {Soros.println ("R kapott!"); wdt_enable (WDTO_1S); késés (2000); Serial.println ("1 SEC."); }} wdt_reset (); digitalWrite (ledPin, HIGH);}
Mit csinálok rosszul?