Hallo
Beim Batteriebetrieb einer Xmega128-Platine möchte ich gern die 
Versorgungsspannung im laufenden Betrieb programmtechnisch prüfen.
Chemische Energie ist teuer, darum muß ich mit dem Strom dabei geizen.
Ein dauerhaft vorhandener, stromfressender Spannungsteiler kommt daher 
nicht in Frage.
Den ADC zu bemühen, der auch bis zu 3mA will, wäre zur Not auch eine 
Lösung aber am liebsten wärs mir so:
Folgendes habe ich mir überlegt:
An einem verfügbaren Port X konfiguriere ich 2 Pins A und B als 
Ausgänge. Diese sind über eine Widerstandskombi folgendermaßen mit dem + 
Eingang des Komparators verbunden:
| 1 | A  o--
 | 
| 2 |      _|_
 | 
| 3 |     |   |
 | 
| 4 |     |   | z.B. 10k für 2V Schaltschwelle s.u.
 | 
| 5 |     |   |
 | 
| 6 |      - -
 | 
| 7 |       |
 | 
| 8 | +K o-- 
 | 
| 9 |      _|_
 | 
| 10 |     |   |
 | 
| 11 |     |   | z.B. 10k für 2V Schaltschwelle s.u.
 | 
| 12 |     |   |
 | 
| 13 |      - -
 | 
| 14 |       |
 | 
| 15 | B  o--
 | 
Programmtechnisch schalte ich diese Ausgänge dann so:
A auf H und B auf L und starte den Komparator.
Ich vergleiche den + Komparator-Eingang (Pin +K) mit der internen 1,0V 
Bandgap (als -Eingang).
Das ganze aller - sagen wir 10s - oder noch seltener, da mit einem 
plötzlichen Einbruch nicht zu rechnen ist.
Die Ungenauigkeiten würde ich mit einer passenden Auswahl der 
Widerstände in erträglichen Rahmen halte, es geht letztlich nur um eine 
gut/schlecht Aussage.