Je voudrais faire un reset de ma carte par sms
J'ai découvert sur le net deux méthodes :
Par hard
une sortie digitale reliée à la pine reset avec une instruction digitalWrite et le reset se fait bien MAIS le reset n'est pas identique à celui du bouton-poussoir embarqué car je constate que le reset se fait uniquement sur le loop() et pas au début du croquis
Par Soft
Par les 2 lignes void(* resetFunc) (void) = 0; et resetFunc();
Ca fonctionne MAIS là aussi c'est le loop() mais c'est pire encore car les sorties digitales ne sont pas réinitialisées
Y-a-t-il une méthode qui agirait exactement comme le bouton reset embarqué?
Why do you need to reset the board ?
Pourquoi avez-vous besoin de réinitialiser la carte?
You can define a macro,
#define reset() __asm__ __volatile__ ("JMP 0x0000 \n")
which will restart the board when you invoke reset();
DKWatson:
You can define a macro,
#define reset() __asm__ __volatile__ ("JMP 0x0000 \n")
which will restart the board when you invoke reset();
In arduino
How to write this strange string?
As following?
#define reset() asm volatile ("JMP 0x0000 \n")
If i write it as above i have an compile error : variable or field 'asm' declared void
DKWatson:
You can define a macro,
#define reset() __asm__ __volatile__ ("JMP 0x0000 \n")
which will restart the board when you invoke reset();
Finally i found the solution looking here : Arduino Software Reset - CodeProject
I used the Watchdog Reset - The Recommended Method
I don't know how that work but i have now a TRUE reset as if i had pressed the reset push-button
A specialist can explain the working?
Thanks DKWatson for your proposition
Why exactly do you want to reset the board ?
Sorry for the late
I use a gsm to send orders to a pellet fireplace for start, stop it and also to mesure ambient temperature of a cottage located 100kms away
I sometimes do not know if the stove is already running or already stopped ... In doubt I prefer in this case start from 0 by resetting the Arduino board