È come millis... solo che bisogna fare i calcoli in modulo 1440:
- Calcolare intervallo 'DT' tra ora finale e ora iniziale
- Calcolare intervallo 'DA' tra ora finale e ora attuale
- Se DA <= DT e DA > 0: acceso else: spento
int dt = tOraStop - tOraStart;
if(dt < 0) dt += 1440;
int da = tOraStop - tOraCorrente;
if(da < 0) da += 1440;
if(da <= dt && da > 0) { if(!acceso) { ON(); acceso = true; } }
else if(acceso) { OFF(); acceso = false; }
EDIT: corretto errore da <= dt