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







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen