Arduino Software Reset

Aggiornamento: nelle ultime versione dell’ide/bootloader questa macro fa andare in loop il nostro arduino, non lo fate! Per sbloccarlo: https://blackstufflabs.com/2013/10/24/aggiornare-firmware-usbasp-con-arduino/

 

Raramente vi capiterà di intervenire via software per resettare l’arduino.
Il miglior modo per fare un buon reset software e quello indicato dal sito ufficiale dell’atmel: reset

Usare il reset software significa, per la maggior parte delle volte, aver scritto uno sketch fatto un pò una merda.

Può capitare che qualcosa si può freezare: ad esempio il wiznet w5100 sull’ethernet shield.
A quel punto, l’unica soluzione è resettare.

Il codice da inserire in testa allo sketch è questo:

#include
#include

#define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {}

E invocare, poi, la macro nel punto in cui avete bisogno di resettare l’arduino in questo modo:
Reset_AVR();

Cosa fa di preciso il reset software?
Con reset software si intende invocare il “watchdog” (cane da guardia) interno per almeno 25mili secondi che si occuperà di resettare il program counter (instruction pointer) a 0, pulisce i registri del’IC ed effettua altre operazioni. Questa operazione è teoricamente uguale a quella di premere il tasto reset sulla scheda.

Un pensiero su “Arduino Software Reset

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.