Also so wie ich das sehe liest du die Variable adcBat einfach aus.
Die Frage die ich mir jetzt stelle:
Wie kommt der Wert von ADC in die Variable adcBat hinein?
Ich glaub nicht, dass der RP6 im Hintergrund immer den Wert vom ADC liest und in dieser Variable speichert.

In der RP6RobotBaseLib.c gibts eine Funktion (task_ADC()), die alle Channels nacheinander ausliest und in die definierten Variablen abspeichert, so auch adcBat.

D.h. vor jeder Messung musst du wohl die task_ADC() Funktion aufrufen um den aktuellen Wert in adcBat gespeichert zu bekommen.

EDIT:
ok das übernimmt dan die task_RP6System() Funktion.
Das Problem ist dann, dass du 500 mal aus dem ADC ausliest, aber du kannst ja trotzdem nur einen Wert in adcBat speichern und den liest du dann 10 mal aus und dividierst ihn anschließend durch 10.
Soll das auch so sein?