Hallo cedra,

was mir auffällt:

1. byte[6] ist 2-fach belegt (OFFSET und LEDPORT). Dürfte aber hier nicht der Fehler sein, weil in der Schleife nicht genutzt. Wozu nutzt du OFFSET überhaupt?
2. In deiner Hauptschleife erfolgt die LED-Anzeige fortlaufend ohne Pause und ohne Löschen der LEDs vor einer neuen Messung, weil das Prog nie zum Label #e kommen kann. Du müßtest VOR jeder neuen Messung (d.h. vor dem "if SYS_VOLTS ..."-Block das Löschen der LEDs einfügen. Nach der Anzeige würde ich auch eine Pause einlegen, um die Anzeige etwas "stabiler" zu machen.
3. Wenn du bei der SYS_VOLTS-Abfrage immer mit "if SYS_VOLTS > ..." arbeitest, dann wird ja mehrfach gemessen. Für deine Anzeige bedeutet das stark schwankende Werte. Ich würde am Anfang nur 1x messen (UBATT=SYS_VOLTS) und dann UBATT testen.

Gruß Dirk

Da gab es auch 'mal ein funktionierendes Prog.
Guckst du hier:
Code:
'---------- INIT---------------
' Basiserweiterung initialisieren:
LSTROBE=off 'LEDPORT-Zugriff ermöglichen
CC2POWER=on 'PWR und +5V (für CC2 und Experimentierplatine) einschalten
' Subsysteme einschalten:
gosub SUBSYS_PWR_ON
' LC-Display initialisieren:
'gosub LCD_INIT

beep 368,10,0:pause 50
gosub LEDSOFF 'Alle LEDs auf Robby aus
gosub LOFF    'Alle LEDs auf Basiserweiterung aus
' ACS initialisieren:
'gosub NO_ACS_INT:beep 368,10,0:SYS ACS_HI 'Kein Interrupt, Power HI
'------------ ANTRIEB -------------------------
REV_L=on:REV_R=on:SYS PLM_SLOW
'----------------------------------------------------------------------
' PROGRAMM:
if SYS_VOLTS>=CHRG_CURRENT then goto WATCH_AKKU
OFFSET=CHRG_CURRENT-SYS_VOLTS
'--------------------------------------------
'---   LADEÜBERWACHUNG FÜR DEN AKKU      ---
'--------------------------------------------
#WATCH_AKKU
if TOUCH >10 then goto WATCH_CURRENT
beep 0,1,0
if SYS_VOLTS > 230 then goto L4_ON
if SYS_VOLTS > 227 then goto L4BLINK
if SYS_VOLTS > 222 then goto L3_ON
if SYS_VOLTS > 214 then goto L3BLINK
if SYS_VOLTS > 206 then goto L2_ON
if SYS_VOLTS > 199 then goto L2BLINK
if SYS_VOLTS > 191 then goto L1_ON
if SYS_VOLTS > 183 then goto L1BLINK
goto WATCH_AKKU
'--------------------------------------------
'---         STROMANZEIGE                ----
'--------------------------------------------
#WATCH_CURRENT
beep 368,0,0
if CHRG_CURRENT<= SYS_VOLTS then goto e
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 12 then goto L4_ON
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 8 then goto L4BLINK
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 5 then goto L3_ON
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 4 then goto L3BLINK
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 3 then goto L2_ON
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 2 then goto L2BLINK
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 1 then goto L1_ON
if (CHRG_CURRENT-SYS_VOLTS-OFFSET) > 0 then goto L1BLINK
#e
gosub LEDSOFF:goto WATCH_AKKU
#L4_ON
gosub LED1ON:gosub LED2ON:gosub LED3ON
gosub LED4ON:beep 386,20,1:pause 20:goto WATCH_AKKU
#L4BLINK
gosub LED1ON:gosub LED2ON:gosub LED3ON
gosub LED4ON:pause 20:gosub LED4OFF:pause 20:goto WATCH_AKKU
#L3_ON
gosub LED1ON:gosub LED2ON:gosub LED4OFF
gosub LED3ON:goto WATCH_AKKU
#L3BLINK
gosub LED1ON:gosub LED2ON:gosub LED4OFF
gosub LED3ON:pause 20:gosub LED3OFF:pause 20:goto WATCH_AKKU
#L2_ON
gosub LED4OFF:gosub LED3OFF
gosub LED1ON:gosub LED2ON:goto WATCH_AKKU
#L2BLINK
gosub LED1ON:gosub LED4OFF:gosub LED3OFF
gosub LED2ON:pause 20:gosub LED2OFF:pause 20:goto WATCH_AKKU
#L1_ON
gosub LED4OFF:gosub LED3OFF:gosub LED2OFF
gosub LED1ON:goto WATCH_AKKU
#L1BLINK
gosub LED4OFF:gosub LED3OFF:gosub LED2OFF
gosub LED1ON:pause 20:gosub LED1OFF:pause 20:goto WATCH_AKKU