una domanda un po' generale...Chiedo un suggerimento perche' sono incartato.
Devo generare una rampa PWM temporizzata (tot di aumento al minuto) e ,per non stare a scomodare i millis o inchiodare tutto con un delay ,vorrei che all'arrivo di una data ora e minuto ad ogni incremento di un minuto letto dal RTC mi dia legga in successione un valore contenuto in un array (che e' un numero tra 0 e 255).
In pratica ho una tabella con 60 valori tra 0 e 255 e voglio che arrivato al ora/ minuto impostato ad ogni incremento di un minuto (partendo dall'inizio della tabella) sposti il puntatore in avanti di uno. Il punto e' che al cambio dell'ora i minuti si riazzerano e quindi il puntatore tornerebbe indietro...
Non so come fare...come posso mettere giu' due righe di codice che mi incremetino di 1 questo contatore ad ogni incremento di un minuto letto dal RTC?
Intanto grazie...
Pero' nella tabella ho piu' flessibilita' perche' nel mio caso non avrei un incremento lineare.
Ma aldila' di quello il punto della domanda che mi resta e' come faccio a incrementare in base ai minuti trascorsi?
Nel codice che misuro i minuti trascorsi? Tipo... orario accensione 21 e 20....1 ora di intervallo, quando supero le 22 e 00 come faccio? Non so se mi spiego....
@Ivanooe: Ti stai rendendo conto che invece di semplificarti la vita, con l'RTC te la stai incasinando ? ? ?
Con una banalissima millis() avevi già il tempo espresso in formato "decimale" ... lavorando con un RTC, se devi fare operazioni su ore e minuti ... o diventi matto o usi la conversione in UTC ... entrambe le cose più complesse che usare semplicemente la millis() ... ;D
gpb01: @Ivanooe: Ti stai rendendo conto che invece di semplificarti la vita, con l'RTC te la stai incasinando ? ? ?
Con una banalissima millis() avevi già il tempo espresso in formato "decimale" ... lavorando con un RTC, se devi fare operazioni su ore e minuti ... o diventi matto o usi la conversione in UTC ... entrambe le cose più complesse che usare semplicemente la millis() ... ;D
Guglielmo
Ciao!
Sì, in parte è vero...Però l'RTC mi serve anche per visualizzare l'ora ed inoltre la millis non è precisa , quindi alla lunga avrei orari sballati (è un dispositivo che resta sempre acceso e dovrei gestire anche l'overflow).
Ho risolto (credo) in maniera banale, ragionando sui minuti.
Siccome son sicuro che la rampa non viene mai impostata tra le 23 le 00, ho convertito le ore lette da RTC in minuti e sommate ai minuti letti.
Tipo 8 e 20 orario start up...diventa minuto 500.. da lì in avanti ogni incremento di un minuto legge un valore diverso in tabella (e non ho più il problema delle ore che si riazzerano).