Hallo zusammen,
genau diese Problem mit der Stomversorgung habe ich bei einem Projekt wie folgt gelöst:
Vorgabe:
- Netzbetriebenes System mit Mega32.
- Bei Stromausfall müssen Betriebsdaten im EEPROM gesichert werden

Lösung:
- Wie schon an anderer Stelle beschrieben kommt ein Elko zur Pufferung der Prozessorspannung zum Einsatz.
- Eine Diode sorgt dafür, dass nur der Prozessor gepuffert wird.

Wenn das Main-Programm regelmäßig und immer durchlaufen wird, muss nicht unbedingt ein Interrupt verwendet werden. Dann kann jeder (Eingangs)-Pin verwendet werden.

Es ist nicht unbedingt ein Operationsverstärker notwendig, es reicht ein einfacher Transistor (mit Kollektorwiderstand), der die Spannung VOR der Diode (über einen Spannungsteiler) überwacht. Ein Kondensator zwischen Emitter und Basis macht die Schaltung unempfindlich gegen kurze Unterbrechungen und mögliches Netzbrummen.

Batterielösung
Bei dem Problem der absinkenden Batteriespannung könnte einer der internen AD-Eingang in regelmäßigen Abständen die Spannung der Batterie messen.
Wird ein bestimmter Wert unterschritten, wird ins EEPROM gesichert.
Bauteilaufwand: maximal 2 Widerstände

Test der richtigen EEPROMSpeicherung
Voraussetzung ist, dass die EEPROM-Sicherung vor dem "Abschalten" des Prozessors vollständig abgeschlossen ist.

Deshalb sollte am Ende der EEPROM-Sicherung z.B. eine Displayausgabe erfolgen oder eine LED aufleuchten.
Wenn diese klappt sind auch die EEPROMdaten richtig gesichert. Sicherheitshalber kann vor dieser letzten Ausgabe eine Pause gesetzt werden, dann hat man etwas mehr Sicherheit.

Kommt die letzte Ausgabe nicht muss der Kondensator vergrößert werden.
Außerdem sollten zu diesem Zeitpunkt alle anderen Ports bzw. Funktionen des Controllers soweit eingestellt sein, dass nicht unnötig Strom aus dem Kondensator gezogen wird.

Beste Grüße