Ho questo problema in un progetto in corso.
Il modo in cui ho a che fare è mantenere il valore attivo del contatore nella RAM. Ho aggiunto un po 'di hardware in modo che il microcontrollore possa rilevare che la tensione di alimentazione in ingresso non elaborata è bassa. In tal caso, interrompe ciò che sta facendo, salva il valore del contatore in tempo reale in EEPROM, quindi attende a guardare la tensione di alimentazione grezza. Se torna indietro, con qualche isteresi, il micro si riavvia essenzialmente. Altrimenti, se l'alimentazione continua a diminuire, il micro alla fine verrà arrestato. Al successivo riavvio, il valore del contatore viene caricato da EEPROM, quindi utilizzato nuovamente dal vivo nella RAM fino al successivo spegnimento.
Non ci vuole molto per scrivere un piccolo valore su EEPROM. Molto probabilmente il tuo attuale sistema di alimentazione dispone di un sufficiente accumulo di energia che puoi rilevare la tensione che si abbassa, e comunque ha abbastanza tempo di funzionamento garantito prima che l'alimentazione del micro scenda al di sotto della soglia di scrittura EEPROM operativa.
Nel mio caso, l'unico hardware aggiuntivo era un diodo Schottky per impedire all'alimentazione CC di assorbire la carica dal serbatoio locale lungo la discesa e due resistori come divisori di tensione in modo che il micro potesse leggere la tensione di ingresso grezza. Il resto è il firmware.
È importante notare che dovresti guardare la tensione in ingresso a qualsiasi alimentazione finale alimenta il micro, non direttamente la tensione di alimentazione del micro. Quando quest'ultimo si abbassa, potrebbe essere troppo tardi. Speriamo che ci sia un intervallo di tensione che è al di sotto del caso peggiore quando tutto funziona correttamente e al di sopra di ciò di cui necessita l'alimentazione del micro per garantire una tensione regolata al micro. Nel mio caso, l'alimentazione del micro era un regolatore buck alimentato da 48 V, quindi esiste una vasta gamma che è al di sotto del normale ma in cui il micro può ancora funzionare in modo affidabile.