Bei meinen ersten Tests des neuen Robby möchte ich gern Messwerte der Sensoren als genauen Wert ermitteln. Da ich keine Erweiterungsplatine mit LC-Display habe, habe ich das 'mal mit den 4 LEDs als Binärausgabe gemacht:
Code:
' PROGRAMM:
define WERT WORD[6] '= BYTE 11/12
'Binäre Ausgabe aller Werte von 0 bis 255 mit den 4 LEDs:
#Start
for WERT = 0 to 255
gosub LED_LONIBBLE
gosub LED_HINIBBLE
next
goto Start
'IIIIIIIIIIII Binärausgabe mit den 4 LEDs IIIIIIIIIIIII
'Die Variable WERT muss als BYTE oder WORD definiert sein.
'Ausgabe 1. Nibble (low):
#LED_LONIBBLE
gosub LEDSOFF: gosub LED1FLASH: gosub LED1FLASH
gosub LED1FLASH: gosub LED1FLASH: gosub LED1FLASH
if (WERT and &B1) <> 0 then gosub LED1ON
if (WERT and &B10) <> 0 then gosub LED2ON
if (WERT and &B100) <> 0 then gosub LED3ON
if (WERT and &B1000) <> 0 then gosub LED4ON
pause 100: return
'Ausgabe 2. Nibble (high):
#LED_HINIBBLE
gosub LEDSOFF: gosub LED2FLASH: gosub LED2FLASH
gosub LED2FLASH: gosub LED2FLASH: gosub LED2FLASH
if (WERT and &B10000) <> 0 then gosub LED1ON
if (WERT and &B100000) <> 0 then gosub LED2ON
if (WERT and &B1000000) <> 0 then gosub LED3ON
if (WERT and &B10000000) <> 0 then gosub LED4ON
pause 100: return
#LED1FLASH
gosub LED1ON: pause 5: gosub LED1OFF: pause 5: return
#LED2FLASH
gosub LED2ON: pause 5: gosub LED2OFF: pause 5: return
Diese Demo (Code-Ausschnitt ohne Definitionen und Init) stellt alle Zahlen von 0 bis 255 nacheinander dar, wobei nach dem Blinken der LED1 die ersten 4 Bit, nach dem Blinken der LED2 die Bits 5 bis 8 kurz gezeigt werden.
Damit kann man Messwerte gut ablesen.
Frage an BASIC-Programmier-Cracks: Geht das noch einfacher oder übersichlicher?
Mfg Dirk
Lesezeichen