Salve a tutti,espongo un problema che sto riscontrando a cui non riesco a venire a capo,sicuramente banale,ma non ne esco:
allora spiego il codice:
durante il ciclo salvo un preciso istante in una variabile unsigned long che chiamo salvamillis.
Più avanti nel codice eseguo una semplice differenza per controllare se un determinato intervallo è trascorso:
if (millis() - salvamillis < secondiRitardoMillis)bitSet(qualcosa);
else bitClear(qualcosa);
specifico che secondiRitardoMillis è di tipo unsigned long e ,per salvare il settaggio in eeprom,la ricavo nel setup con una moltiplicazione del byte salvato in eeprom moltiplicato mille:
secondiRitardoMillis = secondiRitardo * 1000;
Allora fino a che secondiRitardo vale 32 tutto fila liscio,mentre se aumento il valore oltre l'if mi restituisce sempre una condizione vera.
Immagino che sia un solo problema di overflow,però avendo utilizzato il giusto tipo di variabili tra le operazioni di confronto non riesco a capire come correggere il ciclo!!....mi date qualche dritta??...grazie