Ciao a tutti.
Sono a chiedervi come poter utilizzare il watchdog. Ho letto a giro che c'è un bug del bootloader che, nel caso intervenga il watchdog, mette in un loop continuo di reset il processore. Ho provato a cercare a giro se esiste una soluzione ma senza risultato. Sapete darmi qualche dritta?
Il watchdog è un circuito interno che resetta l'Atmega se si accorge che il codice si "pianta" in qualche loop.
La domanda è: ma ti serve? Il watchdog ha più controindicazioni che altro, è non è bene usarlo. Potresti bloccare il micro anche con un codice scritto male e ritrovarti con il micro continuamente sotto reset dal watchdog.
PS:
l'Optiboot dovrebbe essere compatibile con il watchdog, i bug dovrebbero esserci con il bootloader 2009.
Janos:
Mi ero dimenticato di specificare che utilizzo un Arduino Mega 2560.
La 2560 ha un suo bootloader, è da verificare se prevede la disattivazione del watchdog all'avio, altrimenti fa come la 2009 che continua a resettare se il tempo di intervento è troppo piccolo, non viene riavviato il programma utente dove è indispensabile prevedere come prima cosa la disattivazione del watchdog o il ripristino del suo tempo d'intervento.
Ma il risultato è che se porto a massa il pin 37 il watchdog interviene (come è giusto che sia) ma continua a resettarsi all'infinito. Devo necessariamente togliere l'alimentazione all'arduino.
Non credo sia un discorso di tempo troppo piccolo, ho messo 4 secondi.....
Se hai la Mega2560 mi sa che hai il bug. Qualcosa mi pare di aver visto sul forum, ma non confermo al 100%.
Cmq non puoi usare un timer e controllare ogni tot se il pin 37 ha un segnale di LOW? E muoverti di conseguenza nel caso tale segnale passi un certo periodo di tempo?