Saya memiliki masalah ini dalam proyek saat ini.
Cara saya menghadapinya adalah menjaga nilai langsung penghitung dalam RAM. Saya menambahkan sedikit perangkat keras sehingga mikrokontroler dapat mendeteksi bahwa tegangan daya input mentah rendah. Jika demikian, itu menghentikan apa yang dilakukannya, menyimpan nilai penghitung langsung di EEPROM, kemudian menunggu menonton tegangan daya mentah. Jika naik kembali, dengan beberapa histeresis, maka mikro pada dasarnya restart. Jika tidak, jika daya terus turun, mikro pada akhirnya akan berhenti. Pada restart berikutnya, nilai penghitung dimuat dari EEPROM, kemudian digunakan hidup dalam RAM lagi sampai power-down berikutnya.
Tidak butuh waktu lama untuk menulis nilai kecil ke EEPROM. Kemungkinan besar sistem catu daya Anda saat ini memiliki penyimpanan energi yang cukup sehingga Anda dapat mendeteksi voltase yang semakin rendah, dan masih memiliki waktu berjalan yang terjamin sebelum daya ke mikro turun di bawah ambang operasi atau tulis EEPROM.
Dalam kasus saya, satu-satunya perangkat keras tambahan adalah dioda Schottky untuk mencegah catu daya DC dari mengisap muatan dari reservoir lokal di jalan turun, dan dua resistor sebagai pembagi tegangan sehingga mikro dapat membaca tegangan input mentah. Sisanya adalah firmware.
Penting untuk dicatat bahwa Anda harus memperhatikan tegangan pada input ke suplai daya akhir apa pun yang mikro, bukan tegangan daya mikro secara langsung. Pada saat yang terakhir menjadi rendah, mungkin sudah terlambat. Mudah-mudahan ada rentang tegangan yang berada di bawah kasus terburuk ketika semuanya beroperasi dengan benar, dan di atas apa yang dibutuhkan catu daya mikro untuk menjamin tegangan yang diatur ke mikro. Dalam kasus saya, suplai mikro adalah regulator uang dari 48 V, jadi ada kisaran besar yang di bawah normal tetapi di mana mikro masih dapat beroperasi dengan andal.