Ich habe ein IR Fernsteuerungsprogramm umgeschrieben und etwas dazugebastelt, allerdings wenn ich jetzt mit dem Robby fahren will dann brummt er nur wie in dem Spannungsmessprogramm was mmache ich falsch?
Code:'-------------------------- '------ 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 SPEED byte[6] define MODE byte[7] define ANZEIGEMODE byte[8] '--- 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 gp1 byte '---------- 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 RC5:MODE=0 '-------------------------------------------- '--- DEMO REMOTE CONTROL --- '-------------------------------------------- #loop pause 5:gosub GET_IRDATA:SYS COMNAV_STATUS if IR_F =off then goto loop goto EX_COMMAND '---------- KOMMANDO INTERPRETER -------------- #EX_COMMAND if HBYTE=&HFF then goto loop #CMDMODE gosub GET_IRDATA if LBYTE=13 then goto stop if LBYTE=42 then goto back if LBYTE=53 then goto rotleft if HBYTE=21 and LBYTE=21 then goto rotright if LBYTE=21 then goto sound if HBYTE and LBYTE = &HFF then goto forward #sound for gp1 = 50 to 250 step 5 beep gp1,0,0:next for gp1 = 50 to 250 step 5 beep gp1,0,0:next for gp1 = 50 to 250 step 5 beep gp1,0,0:next beep 200,1,1 goto loop '---------------------------------------------- #stop SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=0:SPEED=0:MODE=0:goto loop #rotleft MODE=3:SYS ROTL:SPEED_L=SPEED:SPEED_R=SPEED:goto loop #rotright MODE=3:SYS ROTR:SPEED_L=SPEED:SPEED_R=SPEED:goto loop '----------------------------------------------- #forward if MODE=3 then goto FWD if MODE=2 then goto REV_SLOWER if SPEED=250 then SPEED=240 SPEED=SPEED+10:goto FWD #FWD_SLOWER SPEED=SPEED-10 if SPEED=20 then goto REV #FWD MODE=1:SYS FWDL:SYS FWDR:SPEED_L=SPEED:SPEED_R=SPEED:goto loop #back if MODE=3 then goto REV if MODE=1 then goto FWD_SLOWER if SPEED=250 then SPEED=240 SPEED=SPEED+10:goto REV #REV_SLOWER SPEED=SPEED-10 if SPEED=20 then goto FWD #REV MODE=2:SYS REVL:SYS REVR:SPEED_L=SPEED:SPEED_R=SPEED:goto loop '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 #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
Lesezeichen