Szia!
Igen, szoftver.
A felállást úgy kell érteni, hogy hogyan van a projektbe építve a watchdog. Milyen időközönként avatkozik be, mennyi ideig vár ki stb.
Ezzel a kóddal valószínűleg mindenen meg fog állni induláskor. A korábban általad küldött mintában elég egyértelműen le van írva pár szabály, amit érdemes betartani:
-- setup alatt ki kell kapcsolni (ha a void setup nem fut le, ott azért súlyos bajok vannak),
-- kivárás az élesítés előtt (wathdog, hogy ne forduljon végtelen reset-körbe a kártya és kelljen bootloadertől újra húzni),
-- megfelelő időközönként nullázni kell a watchdogot.
Igen, erre gondoltam, hogy mit csinálsz éppen a kontrollerrel.
Ami a kódot illeti. A loop-on belüli while(1) nem tudom, honnan jött, de teljesen felesleges. A loop() az Arduino keretrendszerben while(1)-ként funkcionál. A kódnak kb. 8 mp-ig kellene futnia, utána reset. Én elvetném egyelőre a Serial.print-et, és helyette a ledet villogtatnám (mint a példaprogramban). Ahogy azt nálam hozzáértőbbek néhányszor már alaposan kitárgyalták a Serial (így a Serial Monitor megnyitása) nem várt hatásokhoz vezethet.
E mellett még megpróbálnám a példaprogramban írt megoldást (wdt_disable(); a setup-ban), illetve ha már ragaszkodsz hozzá, több és informatívabb kiírást (Serial.print) mindenféle helyeken, különös tekintettel az időre ( millis() ). Ha reset után történik a baleset, tisztázni kellene, hogy mikor és mi történik, valóban van-e reset (tehát elindul újra a program a setup-tól vagy sem).
Az eredeti példaprogram működik?