Estoy tratando de crear una alarma que se despierte en un momento determinado y haga una serie de instrucciones. Para configurar las horas en que se despierta, usaré los auriculares de un dispositivo Android para enviar datos en serie a la MCU sobre la(s) hora(s) para despertarse. Simplemente lo conectaré, haré la transferencia y desenchufaré el conector. Luego, el tiempo se establece en la MCU. La transferencia también sincronizará la hora para configurar el temporizador adecuadamente.
Puedo configurar una interrupción de temporizador con un preescalador para que me dé 4 segundos en cada interrupción. Luego use 2 bytes como contador secundario de algún tipo. Eso me daría 72 horas que podría esperar y solo necesito 24 ya que puedo resetear cuando termine el día.
Entonces mi pregunta surge cuando se reinicia el dispositivo. Puedo guardar la hora actual en la EEPROM y luego leerla durante la carga, pero ¿cuánta sobrecarga tiene eso en el uso actual? Quiero que la batería dure el mayor tiempo posible.
Es posible que sea necesario elaborar mi pregunta, pero me preguntaba si había una mejor manera o si lo estoy haciendo de la manera correcta.
Utilice un RTC que admita una línea de alarma, p. DS1375 . El chip puede impulsar una línea de interrupción en una hora/fecha determinada. Tiene que seleccionar el modo de suspensión AVR apropiado que 'escucha' la interrupción seleccionada. No es necesario utilizar los temporizadores AVR.
Estoy usando un temporizador de vigilancia interno en attiny44 en un caso similar. Se puede configurar para emitir una interrupción (no restablecer) cada 8 segundos. Lo que es bueno es que la interrupción de WDT puede activar el chip desde el modo de suspensión más profundo de "apagado".
PedroJ