Schon mal fielen Dank!
Hier ist der Code vom Beispiel:
Code:'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 'IIIIIIIIII MOBILE ROBOT EVALUATION PROGRAM IIIIIIIIIIII 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ' EINFACHES BEISPIEL ZUR BENUTZUNG DES TOUCHSENSORS 'Die Ein/Ausgabemöglichkeiten des Roboters sind sehr beschränkt, sind 'aber jedoch für einen normalen Betrieb ausreichend. 'Den TOUCH-SENSOR könne Sie z.B. benutzen um verschiedene Betriebszustände 'einzustellen. 'Dieses Beispiel soll Ihnen ein Gefühl dafür geben, welche Spannugswerte der 'Touchsensor erzeugt, wenn man ihn auf verschiedene Art berührt. 'Ohne Berührung liefert der Sensor den Wert 0 am AD-Wandler mit dem 'Bezeichner TOUCH. Je jach Grösse der berührten Fläche, Druck und Feuchtigkeit 'des Fingers nimmt der Wert zu. ' --------------------------------------------------------------------- ' FUNKTION DES PROGRAMMS '---------------------------------------------------------------------- ' Schieben Sie den Finger langsam von vorne mit wechselndem Druck über die ' Kontaktfläche und beobachten Sie welche LEDs leuchten. In der Tabelle ' sehen Sie, welchen Wert der A/D-Wandler (TOUCH) dabei liefert. ' Die Spannugswerte werden mit den LEDs als Balken angezeigt ' LED 1 - blinkend: 25 (dauernd: 50) ' LED 2 - blinkend: 75 (dauernd: 100) ' LED 3 - blinkend:125 (dauernd: 150) ' LED 4 - blinkend:175 (dauernd: 200) ' '------------------------------------------------------------------------ 'RESOURCEN: 'Sie finden in allen Beispielen sämtliche Systemroutinen die zum Betrieb des 'Roboters notwendig sind. 'Viele davon greifen auf Hardwareresourcen zu, die Sie von C-Control her nicht 'kennen, deren genaue Funktionsweise aber im File "Project5_intern" erklärt ist. ' ' Für dieses Beispiel sind folgende SYSTEMROUTINEN relevant: ' POWER: ' gosub SUBSYS_PWR_ON ;Schaltet die Subsysteme EIN/AUS ' gosub SUBSYS_PWR_OFF ' AUSGABE: ' gosub LED1ON ;zum Ein/Ausschalten der LED1 analog auch LED 2bis 4 ' gosub LED1OFF ; ' gosub LEDSOFF ;schaltet alle LEDS aus '-------------------------- '------ I/O PORTS --------- '-------------------------- '- INTERFACE LCD/EXTPORT -- define sdio port[1] define sclio port[3] define strobe port[4] '-- INTERFACE COM/NAV ----- define DATALINE port[1] define CLOCKLINE port[2] '-------------------------- '------ SENSORS --------- '-------------------------- define LIGHT_L ad[7] define LIGHT_R ad[6] define SYS_VOLTS ad[3] define CHRG_CURRENT ad[2] define SYS_CURRENT ad[1] define MIC ad[4] define TOUCH ad[5] '--------------------------- '------ DRIVE ------------- '--------------------------- define SPEED_L da[1] define SPEED_R da[2] define REV_L port[6] define REV_R port[5] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- '--- INTERFACE BUFFER ---- define LBYTE byte[1] define HBYTE byte[2] define SUBCMD byte[3] '---- OPERATION DATA ------ define EXTPORT byte[4] define LED1_F bit[29] define LED2_F bit[30] define LED3_F bit[31] define LED4_F bit[32] define SYSTEM_STATUS byte[5] '-------------------------- '---- USER MEMORY ------- '-------------------------- define TIM byte[6] define PGM byte[7] '--- SYSTEMROUTINEN ----------- define PLM_SLOW &H01C4 define SYSTEM &H01C9 define COMNAV &H0154 '- ERWEITERTE SYSTEM ROUTINEN - define REVR &H0101 'ANTRIEB RECHTS RÜCKWÄRTS define REVL &H0106 'ANTRIEB LINKS RÜCKWÄRTS define FWDR &H010B 'ANTRIEG RECHTS VORWÄRTS define FWDL &H0110 'ANTRIEB LINKS VORWÄRTS define ROTR &H0115 'RECHTS DREHEN define ROTL &H0119 'LINKS DREHEN define REV &H011D 'RÜCKWÄRTS define FWD &H0121 'VORWÄRTS define COMNAV_STATUS &H0125 'UPDATED ALLE FLAGS IM STATUS-REGISTER define ACS_LO &H01E1 'ACS POWER LO define ACS_HI &H01E9 ' define ACS_MAX &H01F1 ' define SEND_TLM &H014A 'SENDET TELEMETRIE (CH=HBYTE,DATEN=LBYTE) define SEND_SPEEDR &H0134 'SENDET TLM KANAL 8,PLM RECHTS define SEND_SPEEDL &H013A 'SENDET TLM KANAL 7,PLM LINKS define SEND_SYSSTAT &H0144 'SENDET TLM KANAL 0,SYSTEM STATUS '(FLAGS für ACS,FWD/REV, ACS_LO/HI/MAX) '---------- INIT--------------- gosub SUBSYS_PWR_ON:REV_L=off:REV_R=off beep 368,10,0:pause 50 PGM=1 '-------------------------------------------- '--- DEMO BERÜHRUNGSSENSOR UND LEDs --- '-------------------------------------------- #NO_SELECT #WATCH if TOUCH > 200 then print "200" if TOUCH > 175 then print "175" if TOUCH > 150 then print "150" if TOUCH > 125 then print "125" if TOUCH > 100 then print "100" if TOUCH > 75 then print "75" if TOUCH > 50 then print "50" if TOUCH > 25 then print "25" gosub LEDSOFF:goto WATCH '-------------------------------------------- #L4ON gosub LED1ON:gosub LED2ON:gosub LED3ON gosub LED4ON:goto WATCH #L4BLINK gosub LED1ON:gosub LED2ON:gosub LED3ON gosub LED4ON:pause 20:gosub LED4OFF:pause 20:goto WATCH #L3ON gosub LED1ON:gosub LED2ON gosub LED3ON:goto WATCH #L3BLINK gosub LED1ON:gosub LED2ON gosub LED3ON:pause 20:gosub LED3OFF:pause 20:goto WATCH #L2ON gosub LED1ON:gosub LED2ON:goto WATCH #L2BLINK gosub LED1ON gosub LED2ON:pause 20:gosub LED2OFF:pause 20:goto WATCH #L1ON gosub LED1ON:goto WATCH #L1BLINK gosub LED1ON:pause 20:gosub LED1OFF:pause 20:goto WATCH 'IIIIIIIIIII LED DRIVER IIIIIIIIIIIIIIIII #LED1ON LED1_F=on:goto EXTPORT_WRITE #LED1OFF LED1_F=off :goto EXTPORT_WRITE #LED2ON LED2_F=on:goto EXTPORT_WRITE #LED2OFF LED2_F=off:goto EXTPORT_WRITE #LED3ON LED3_F=on:goto EXTPORT_WRITE #LED3OFF LED3_F=off:goto EXTPORT_WRITE #LED4ON LED4_F=on:goto EXTPORT_WRITE #LED4OFF LED4_F=off:goto EXTPORT_WRITE #LEDSOFF EXTPORT=EXTPORT and &H0F:goto EXTPORT_WRITE #EXTPORT_WRITE SYS SYSTEM:pulse STROBE:RETURN 'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM IIIII #GET_IRDATA SUBCMD=1:sys COMNAV:return #SEND_IRDATA SUBCMD=0:sys COMNAV:return #RC5 SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC HBYTE=00:SUBCMD=2:sys COMNAV:return #RC5_INT SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2 HBYTE=00:SUBCMD=2:sys COMNAV:return #REC80 SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD HBYTE=00:SUBCMD=2:sys COMNAV:return #REC80_INT SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03) HBYTE=00:SUBCMD=2:sys COMNAV:return 'IIIIII SYSTEMROUTINEN SYSTEM IIIIIIIIIIII #NO_ACS_INT SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB HBYTE=00:SUBCMD=2:sys COMNAV:return #ACS_INT_200 SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04 HBYTE=50:SUBCMD=2:sys COMNAV:return #SUBSYS_PWR_ON sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8 sys SYSTEM:return #SUBSYS_PWR_OFF EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM deact sdio:deact sclio:return #CLR_DISTANCE SUBCMD=3:sys COMNAV:return #L_DISTANCE SUBCMD=6:sys COMNAV:return #R_DISTANCE SUBCMD=7:sys COMNAV:return '---------COM/NAV GERÄTEREIBER ------------- 'syscode "p5driv.s19"







Zitieren

Lesezeichen