Kannst du mal bitte die genaue Pruoduktnummer, Hersteller und alles posten, dass ich mir die auch kaufen kann, weil die Fernbedienung geht mir auf den Geist. Vielleicht kann sich ja jemand den Code von mir anschauen und mir sagen, ob ich vielleicht einen Logischen Fehler habe.
Danke!Code:'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII 'IIIIIIIIII MOBILE ROBOT EVALUATION PROGRAM IIIIIIIIIIII 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ' EINFACHES BEISPIEL ZUR BENUTZUNG EINER IR-FERNSTEUERUNG ' Für diese Demo benötigen Sie eine RC5 oder REC80 kompatible ' IR-Fernsteuerung, von der die ausgesendeten Codes bekannt sind. ' es werden 4 Kommandos erkannt und dazu benutzt die 4 LEDs zu schalten ' Die Fernsteuerkommandos sind für die als Zubehör erhältliche IR-Fernbedienung CV100 ' (Best.Nr.349127) vereinbart, können aber natürlich beliebig geändert werden. ' Wenn Sie eine eigene Fernsteuerung verwenden wollen, deren Codes Sie aber nicht kennen ' finden Sie im Ordner TOOLS das Programm DISPLAY_IR_CODES.BAS, das es Ihnen ermöglicht ' diese Codes anzuzeigen. ' 'Folgende Kommandos sind vereinbart: '32 - LED1 (P+) '33 - LED2 (P-) '17 - LED3 (V-) '16 - LED4 (V+) ' --------------------------------------------------------------------- ' FUNKTION DES PROGRAMMS '---------------------------------------------------------------------- 'Die SYSTEM-ROUTINE COMNAV_STATUS liefert im Bezeichner IR_F ein Flag 'wenn ein IR-Signal empfangen wurde. 'Das Unterprogramm GET_IRDATA liefert in HBYTE die gesendete Adresse und in LBYTE 'die zugehörigen Kommandos.In diesem Beispiel werden nur die Kommandos ausgewertet und 'die LEDs danach geschaltet. '------------------------------------------------------------------------ '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 ' AUSGABEN: ' gosub LED1ON ;zum Ein/Ausschalten der LED1 analog auch ' gosub LED1OFF ;LED 2bis 4 ' gosub LEDSOFF ;schaltet alle LEDS aus ' ' SUBSYSTEM: ' SYS COMNAV_STATUS ;Abfrage des ACS/IR-COMM ' gosub GET_IRDATA ;liefert empfangene IR-Daten in HBYTE und LBYTE ' (jeweils FF wenn nichts empfangen wurde) ' gosub SEND_IRDATA ;Sendet die Daten in HBBYTE und LBYTE ' gosub REC80 ;Stellt das Format ein ' gosub REC80_INT ;Aktiviert den Interruptbetrieb mit REC80 Format ' gosub RC5 ;Stellt das Format ein ' gosub RC5_INT ;Aktiviert den Interruptbetrieb mit RC5 Format ' ANTRIEB ' SYS REVR ;Kette rückwärts laufen lassen R/L ' SYS RERL ' SYS FWDR ;Kette vorwärts laufen lassen R/L ' SYS FWDL ' SYS ROTR ;Auf der Stelle nach R/L drehen ' SYS ROTL '-------------------------- '------ 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] '---- FREIE PORTS --------- define FREIP7 port[7] define FREIP8 port[8] define FREIP9 port[9] define FREIP10 port[10] define FREIP11 port[11] define FREIP12 port[12] define FREIP13 port[13] define FREIP14 port[14] define FREIP15 port[15] define FREIP16 port[16] '-------------------------- '------ 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] define ACSL_F bit[33] define ACSR_F bit[34] define IR_F bit[35] '-------------------------- '---- USER MEMORY ------- '-------------------------- define DATA byte[6] '--- 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 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) define x word '---------- INIT--------------- FREIP7=off:FREIP8=off:FREIP9=off:FREIP10=off FREIP11=off:FREIP12=off:FREIP13=off:FREIP14=off FREIP15=off:FREIP16=off gosub SUBSYS_PWR_ON beep 368,10,0:pause 50 '---- SYSTEM OPERATION MODE (NO INTERRUPT) ---- gosub NO_ACS_INT:beep 368,10,0:SYS ACS_MAX '------------ ANTRIEB ------------------------- REV_L=on:REV_R=on:SYS PLM_SLOW '--------- IR-DATENFORMAT ----------------- gosub REC80 '-------------------------------------------- '--- STEUERUNG MIT SONY FERNBEDIENUNG --- '-------------------------------------------- #loop pause 10:gosub LEDSOFF SYS COMNAV_STATUS:if IR_F=off then goto loop '---------- KOMMANDO INTERPRETER -------------- #EX_COMMAND gosub GET_IRDATA if LBYTE=29 then gosub CONTINUE if LBYTE=0 then gosub TASTE1 if LBYTE=1 then gosub TASTE2 if LBYTE=2 then gosub TASTE3 if LBYTE=4 then gosub TASTE5 if LBYTE=5 then gosub TASTE6 if LBYTE=6 then gosub TASTE7 'if LBYTE=8 then gosub TASTE9 if LBYTE=32 then gosub TASTE10 'if LBYTE=33 then gosub TASTE11 goto loop '--------- CONTINUE ----------------------- #CONTINUE print TIMER print "KEYNR=29" print "---" gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 1 ---------------------------------- #TASTE1 SPEED_L=150:SPEED_R=150:SYS ROTL:pause 5 SPEED_L=0 :SPEED_R=0 gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 2 ---------------------------------- #TASTE2 SPEED_L=150:SPEED_R=150:SYS FWD:pause 30 SPEED_L=0 :SPEED_R=0 gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 3 ---------------------------------- #TASTE3 SPEED_L=150:SPEED_R=150:SYS ROTR:pause 5 SPEED_L=0 :SPEED_R=0 gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 5 ---------------------------------- #TASTE5 SPEED_L=150:SPEED_R=150:SYS ROTL:pause 42 SPEED_L=0 :SPEED_R=0 gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 6 ---------------------------------- #TASTE6 LED2ON:wait 5:LED2OFF gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 7 ---------------------------------- #TASTE7 SPEED_L=150:SPEED_R=150:SYS ROTR:pause 42 SPEED_L=0 :SPEED_R=0 gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND '--------- 10 --------------------------------- #TASTE10 SPEED_L=150:SPEED_R=150:SYS REV:pause 30 SPEED_L=0 :SPEED_R=0 gosub SUBSYS_PWR_OFF pause 30 gosub SUBSYS_PWR_ON gosub REC80_INT gosub REC80 gosub NO_ACS_INT:SYS ACS_MAX gosub EX_COMMAND 'IIIIIIIIIII LED DRIVER IIIIIIIIIIIIIIIII #LED1ON LED1_F=on:goto EXTPORT_WRITE #LED1OFF LED1_F=off and &HEF: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 #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"
mfg
robertthronhill







Zitieren

Lesezeichen