Hallo

Das Ausrechnen ist eigentlich eine neue Aufgabe;)

Bei 5/1023 bleibt immer nur 0 als Ergebniss übrig, weil wir ja Integerrechen. Wenn man die Formel passend umstellt, erhält man mit

5V*Messwert/1023=gesuchte Spannung

zumindest ein ausreichend genaues Ergebniss. Das funktioniert, weil der Messwert nie über 1023 sein wird und 5*1023=5115 locker in eine 16Bit-Variable passt.

Grundsätzlich kannst du auch mit den orginalen R43/44 brauchbare Messungen anstellen. Dazu muss lediglich, wie du oben schon geplant hast, R43 anstatt nach Vcc nach VLipo gehen. Bei 8,4V Lipospannung sollte mit der Lib-Funktion ein Messwert von 1023*4,2V/5V=859, für 7,2V entsprechend 1023*3,6V/5V=737 ermittelt werden können. Das sollte eigentlich so passen, die Gegenprobe: Die Differenz der Messwerte beträgt 859-737=122, das entspricht 5V*122/1023*2=1,2V;)

Zur Anzeige auf dem LCD: Da ich finde, ein Mikrokontroller fühlt sich nur beim Integerrechnen richtig wohl, würde ich vielleicht so ansetzen: Bei Messwert 737 z.B. errechnen sich die Volt etwa so:

Ganzevolt=2*5V*737/1023
Zehntelvolt=2*5V*737/102-10*Ganzevolt

Ganzevolt=7
Zehntelvolt=72-70=2

Mein RP6 (mit Mega32) zeigt damit
Code:
	vt100_set_cursor(5,1);
	uint16_t GanzeVolt=10*737/1023;
	writeChar(GanzeVolt+'0');
	writeChar(',');
	writeChar(10*737/102-10*GanzeVolt+'0');
	writeChar('V');

	vt100_set_cursor(6,1);
	GanzeVolt=10*859/1023;
	writeChar(GanzeVolt+'0');
	writeChar(',');
	writeChar(10*859/102-10*GanzeVolt+'0');
	writeChar('V');
7,2V
8,4V

an :)

Gruß

mic