Ciao a tutti, mi servirebbe un parere da qualcuno che abbia gia usato il DS3231 ... la domanda e' "software", e per la maggior parte dei programmatori probabilmente anche banale, ma la risposta poi mi condizionera' l'hardware, quindi dovrei risolvere il dubbio prima di terminare la parte hardware del prototipo.
Premetto che il tutto e' ancora in fase di studio, della serie, "vediamo se e' possibile farlo, prima di buttarci a farlo" ... dovrebbe trattarsi di un datalogger del tipo "a lungo termine", nel senso che dovrebbe avere la maggiore autonomia possibile, ed un minimo di possibilita' di campionare valori sul lungo periodo con intervalli di minuti o anche oltre ... per cui cercavo di scoprire se fosse possibile realizzarlo con un 328 buttato in sleep durante i periodi di non lettura ed un DS3231 come RTC, e risvegliabile ad intervalli programmabili ...
Stavo guardando il datasheet del chip, ed ho visto che il pin 3 puo essere usato per ottenere un'impulso basso a determinati intervalli che dipendono da due registri "alarm" ... la mia idea era di usare un'interrupt "falling" del 328 come "sveglia", pilotato appunto da questo pin, dato che gli interrupt dovrebbero essere indipendenti dalla condizione di sleep o deep-sleep, e riuscire a risvegliare il micro in ogni caso ... in questo modo, dovrebbe essere possibile programmare l'intervallo di lettura nei registri alarm del DS, che si occuperebbe poi di svegliare il 328 ad intervalli, questo farebbe tutte le sue letture, poi si rimetterebbe a dormire fino al prossimo impulso ... e fin qui, la cosa dovrebbe essere "relativamente" semplice (parecchio relativamente, immagino :D)
Pero', da quello che ho capito, gli allarmi possono essere impostati per avere impulsi ogni secondo, minuto, ora, giorno ... ma NON per multipli, cioe', non potrei avere una lettura ogni 10 o 30 minuti, o 2 o 5 ore, e cosi via, se mi servisse, e qui viene il dubbio ... il 328, puo usare un'ingresso interrupt come "contatore" per una variabile interna anche rimanendo per la maggior parte del tempo in sleep ? (esempio, devo fare una lettura ogni 6 ore, imposto l'allarme interno del DS in modo che mi dia un'impulso ogni ora ed una variabile di conteggio a zero, alla ricezione dell'impulso, controllo il valore della variabile, se e' 6, la azzero, faccio le mie letture, salvo su SD e torno a dormire, se e' minore, aggiungo uno e torno a dormire ... in questo modo, il tutto sarebbe "sveglio" per pochissimo tempo ogni ora, al di fuori delle letture) ... presumo di si, ma vorrei esserne certo ... inoltre, quanto potrebbe influire sul consumo medio l'operazione di aggiornamento di questa variabile ? ... anche qui, presumo piuttosto poco, dato che presumo bastino poche operazioni quindi pochissimo tempo, ma chiedere e' sempre meglio ...
Ovviamente, se non esiste un modo per avere gli impulsi gia dal DS agli intervalli voluti