Tengo este problema en un proyecto actual.
La forma en que lo estoy tratando es mantener el valor en vivo del contador en la RAM. Agregué un poco de hardware para que el microcontrolador pueda detectar que el voltaje de alimentación de entrada sin procesar es bajo. Si es así, detiene lo que está haciendo, guarda el valor del contador en vivo en la EEPROM, luego espera viendo la tensión de alimentación bruta. Si vuelve a subir, con alguna histéresis, entonces el micro se reinicia esencialmente. De lo contrario, si la energía continúa bajando, el micro eventualmente se detendrá. En el siguiente reinicio, el valor del contador se carga desde EEPROM, luego se usa en vivo en la RAM nuevamente hasta el próximo apagado.
No toma mucho tiempo escribir un valor pequeño en la EEPROM. Lo más probable es que su sistema de suministro de energía existente tenga suficiente almacenamiento de energía para que pueda detectar que el voltaje se está agotando y aún tiene el tiempo de funcionamiento garantizado suficiente antes de que la energía del micro caiga por debajo del umbral de escritura de EEPROM o operativo.
En mi caso, el único hardware adicional era un diodo Schottky para evitar que la fuente de alimentación de CC aspire la carga del depósito local en el camino hacia abajo, y dos resistencias como divisor de voltaje para que el micro pueda leer el voltaje de entrada sin procesar . El resto es firmware.
Es importante tener en cuenta que debe observar el voltaje en la entrada a cualquier fuente final que alimente al micro, no al voltaje de poder del micro directamente. Para cuando este último baja, puede ser demasiado tarde. Es de esperar que haya un rango de voltaje que esté por debajo del peor de los casos cuando todo funciona correctamente y por encima de lo que necesita la fuente de alimentación del micro para garantizar un voltaje regulado al micro. En mi caso, el suministro del micro fue un regulador de buck alimentado desde 48 V, por lo que hay un amplio rango que está por debajo de lo normal pero donde el micro aún puede funcionar de manera confiable.