reset arduino programmato: possibile??

e dopo un po' di silenzio torno a farmi vedere :smiley:

ho una questione da porvi: causa overflow della funzione millis(), avevo in mente di resettare in maniera automatica ogni mese. è disponibile qualche funzione che mi permetta di fare ciò?

tipo pensavo ad un digitalOut normalmente alto, connesso al pin reset (in serie con una resistenza per stabilizzare il segnale), e a un tot valore restituito da millis, abbasso il segnale e arduino "dovrebbe" resettarsi...giusto?

Non ne ho la certezza assoluta ma se dichiari la variabile come "unsigned long" non ci dovrebbero essere problemi: il risultato della differenza tra millis() e la tua variabile dovrebbe venire giusto lo stesso. Guarda il mio posto che avevo scritto:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1264002824/6

infatti se tu fai una prova ed esegui questo Sketch sul serial monitor otterrai 20 !

unsigned long DieciMsPrimaOverlay = 4294967286;
unsigned long DieciMsDopoOverlay = 10;

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println(DieciMsDopoOverlay - DieciMsPrimaOverlay);
  delay(1000);
}

Nota che 4294967286 è il valore di millis() 10 millisecondi prima dell'overflow (il valore massimo di una unsigned long infatti è 4294967295)

mmm...diciamo che non ottengo 20 ma un po' di caratteri strani :slight_smile:

Sicuro che hai settato il serial monitor a 9600 bps ? Io l'ho testato sul mio arduino mega e ti assicuro che ricevo 20 !!!