Gehts oder Gehts nicht??????????
jon
Hi Jon,
hab übersehen, dass bei move_fwd am ende gosub Strecke steht.
Ja ich glaub so musstes eigentlich funktionieren.
Ich probiers gleich mal am Mittwoch aus.
Gruß dj
Gehts oder Gehts nicht??????????
jon
sorry hab noch so viel mit schule um die ohren gehabt und bin dann nichtmehr dazu gekommen.
aber am wochen ende kann ich es ganz sicher ausprobieren aber bis dahin müsste dein robby eigenlich wieder da sein.
so wie der code aussieht(wenn ich nichrs übersehen hab)muss es eigentlich funktionieren.
Gruß dj
Ich habe ja jetzt schon meinen zweiten Robby abgegeben (beim ersten war das ACS defekt), da hat es ganze 4 Wochen gedauert, bis ich einen Gutschein bekommen habe. Conrad meinte beim zweiten dann, dass es wieder um die 4 Wochen dauern wird.
Mal schauen.
jon
Hi Jon,
dein prog. funktioniert.
ich hab nur noch ein Problem:
ich hab dein prog. erweitert undzwar um:
eine endlos schleife für das ganze prog.(dass man es mehrmals hintereinander ausführen kann)
und um ACS(dachte das wäre ganz nützlich)
mein problem ist allerdings, wenn ich robby zum 2. mal fahren lasse stopt er nicht mehr!
hier ist mal der code vielleicht kannst du mir ja sagen, was an meinem prog. nicht stimmt:
vielndank schon mal.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] '-------------------------- '------ 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 GP byte[6] define MAXLIGHT byte[7] define GP1 byte[8] define SAMPLE byte[9] define HSAMPLE byte[10] '--- 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) #Start '---------- INIT--------------- 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 '-------------------------------------------- '--- WEGSTRECKENZÄHLER --- '-------------------------------------------- gosub CLR_DISTANCE:gosub LEDSOFF #LOOP for GP=1 to 100 SAMPLE=MIC if SAMPLE > HSAMPLE then HSAMPLE=SAMPLE next if HSAMPLE < 10 then gosub LED4ON else gosub LED4OFF if HSAMPLE >= 10 then gosub move_fwd HSAMPLE=0:goto loop '---------------------------------------------------------------- #Strecke pause 5:SYS COMNAV_STATUS gosub L_DISTANCE if LBYTE= 25 then gosub stop '--------- LEDs ansteuern -------------------- if ACSL_F=on then gosub LED4ON else gosub LED4OFF if ACSR_F=on then gosub LED1ON else gosub LED1OFF '--------- AUSWEICHMANÖVER EINLEITEN --------- if (ACSL_F and ACSR_F)=on then goto rotate if ACSL_F=on then goto move_right if ACSR_F=on then goto move_left SYS FWDR:SYS FWDL:SPEED_L=255:SPEED_R=255 goto Strecke '-------------------------------------------- '-------- AUSWEICHEN NACH RECHTS ------------- #move_right SPEED_R=100:SPEED_L=255:goto Strecke '-------- AUSWEICHEN NACH LINKS ------------- #move_left SPEED_L=100:SPEED_R=255:goto Strecke '---------- ROTIEREN -------------------- #rotate SPEED_L=150:SPEED_R=150:SYS ROTR:goto Strecke #stop SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=0:beep 368,10,0:goto Start #move_fwd SYS FWDR:SYS FWDL:SPEED_L=155:SPEED_R=155:gosub Strecke '--------------------------------------------- '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
Gruß dj
So wirklich weiß ich auch nicht, was da falsch sein könnte.
Ich würde nur mal sagen, dass du die Zeile
"SYS FWDR:SYS FWDL:SPEED_L=255:SPEED_R=255"
bei #Strecke rauslassen köntest. Es sei denn, du willst ihm sagen, dass er bei keinem Gegenstand schneller fahren soll.
jon
Hi,
muss oben an meinem Code noch was veränder so wie er oben steht fährt robby beim 2. mal einfach so wieder los.
hier der code mit Verbesserung, der allerdings noch nicht richtig funktioniert:
bitte schaut ihn euch an!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] '-------------------------- '------ 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 GP byte[6] define MAXLIGHT byte[7] define GP1 byte[8] define SAMPLE byte[9] define HSAMPLE byte[10] '--- 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) #Start '---------- INIT--------------- 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 '-------------------------------------------- '--- WEGSTRECKENZÄHLER --- '-------------------------------------------- gosub CLR_DISTANCE:gosub LEDSOFF #LOOP for GP=1 to 100 SAMPLE=MIC if SAMPLE > HSAMPLE then HSAMPLE=SAMPLE next if HSAMPLE < 10 then gosub LED4ON else gosub LED4OFF if HSAMPLE >= 10 then gosub move_fwd HSAMPLE=0:goto loop '---------------------------------------------------------------- #Strecke pause 5:SYS COMNAV_STATUS gosub L_DISTANCE if LBYTE= 25 then gosub stop '--------- LEDs ansteuern -------------------- if ACSL_F=on then gosub LED4ON else gosub LED4OFF if ACSR_F=on then gosub LED1ON else gosub LED1OFF '--------- AUSWEICHMANÖVER EINLEITEN --------- if (ACSL_F and ACSR_F)=on then goto rotate if ACSL_F=on then goto move_right if ACSR_F=on then goto move_left goto Strecke '-------------------------------------------- '-------- AUSWEICHEN NACH RECHTS ------------- #move_right SPEED_R=100:SPEED_L=255:goto Strecke '-------- AUSWEICHEN NACH LINKS ------------- #move_left SPEED_L=100:SPEED_R=255:goto Strecke '---------- ROTIEREN -------------------- #rotate SPEED_L=150:SPEED_R=150:SYS ROTR:goto Strecke #stop SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=0:beep 368,10,0:LBYTE=0:HSAMPLE=0:goto Start #move_fwd SYS FWDR:SYS FWDL:SPEED_L=155:SPEED_R=155:gosub Strecke '--------------------------------------------- '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
ich weiß einfach nicht, was da falsch ist.
Gruß dj
Um ehrlich zu sein:
Ich weiß nicht, was da falsch ist
Wirklich keinen Plan
jon
Hi,
hab fest gestellt, dass der zweite durchlauf fehlerhaft ist.
beim ersten mal funktionierts aber wenn er dann wieder bei #Start anfängt hält er nicht mehr an.
ich werd mal weiter nachlesen und gucken ob ich den Fehler find.
Gruß dj
Hi,
Hab den Fehler immernoch nicht entdeckt!
Bitte helft mir doch!
Ich weiß einfach nicht was da schief läuft!
Vielleicht entdeck ja einer ihn.
Gruß dj
Lesezeichen