sinsibo
08.02.2006, 13:56
Hi,
ich habe da mal eine Frage, weil ich da was nicht ganz verstehe.
Wenn ich den Rp5 geradeaus fahren lasse, inkrementiert er schön den Zähler von Lbyte bzw. von hbyte (wenn von nöten), aber sobald ich ihn links oder rechts fahren lassen möchte, stop der zähler und er dreht und dreht ohne aufzuhören.
Habe dann auch noch das Problem, wenn ich Ihn rechts (s.move_right) fahren lasse, dass das rechte rad sich dreht und das linke stehen bleibt, dabei soll es ja umgekehrt sein? Links klappt es
Mach ich da was falsch, oder muss ich da ganz anders rangehen.
Vlt habe ich das rechts- bzw. linksfahren falsch programmiert und wäre da auch für jedes Beispielcode dankbar.
Mein Ziel:
Ich wollte den Robby erst geradeaus fahren lassen und dann mal nach rechts oder links, wie ich gerade Lust habe, hat aber nicht geklappt.
Mein Beispiel sieht so aus:
'---------- 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:gosub move_fwd
#NO_TASK
pause 5:SYS COMNAV_STATUS
gosub R_DISTANCE <- darf ich beide überhaupt aufr
gosub L_DISTANCE <- aufrufen, wie lös ich das am
<- besten mit r&l-fahren
print "lbyte : ";lbyte; " hbyte : ";hybte <- Auswertung am Terminal
if LBYTE=25 then gosub LED1ON
if LBYTE=50 then gosub move_right <- nur das hier geändert
if LBYTE=75 then gosub LED3ON
if LBYTE=100 then goto stop
goto NO_TASK
'--------------------------------------------
#stop
gosub LED4ON:SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=0:end
#move_fwd
SYS FWDR:SYS FWDL:SPEED_L=155:SPEED_R=155:return
#move_right
SYS FWDR:SYS FWDL:SPEED_L=100:SPEED_R=0:return
#move_left
SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=100:return
'---------------------------------------------
Danke für jede Hilfe
Gruss
Sinsibo
ich habe da mal eine Frage, weil ich da was nicht ganz verstehe.
Wenn ich den Rp5 geradeaus fahren lasse, inkrementiert er schön den Zähler von Lbyte bzw. von hbyte (wenn von nöten), aber sobald ich ihn links oder rechts fahren lassen möchte, stop der zähler und er dreht und dreht ohne aufzuhören.
Habe dann auch noch das Problem, wenn ich Ihn rechts (s.move_right) fahren lasse, dass das rechte rad sich dreht und das linke stehen bleibt, dabei soll es ja umgekehrt sein? Links klappt es
Mach ich da was falsch, oder muss ich da ganz anders rangehen.
Vlt habe ich das rechts- bzw. linksfahren falsch programmiert und wäre da auch für jedes Beispielcode dankbar.
Mein Ziel:
Ich wollte den Robby erst geradeaus fahren lassen und dann mal nach rechts oder links, wie ich gerade Lust habe, hat aber nicht geklappt.
Mein Beispiel sieht so aus:
'---------- 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:gosub move_fwd
#NO_TASK
pause 5:SYS COMNAV_STATUS
gosub R_DISTANCE <- darf ich beide überhaupt aufr
gosub L_DISTANCE <- aufrufen, wie lös ich das am
<- besten mit r&l-fahren
print "lbyte : ";lbyte; " hbyte : ";hybte <- Auswertung am Terminal
if LBYTE=25 then gosub LED1ON
if LBYTE=50 then gosub move_right <- nur das hier geändert
if LBYTE=75 then gosub LED3ON
if LBYTE=100 then goto stop
goto NO_TASK
'--------------------------------------------
#stop
gosub LED4ON:SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=0:end
#move_fwd
SYS FWDR:SYS FWDL:SPEED_L=155:SPEED_R=155:return
#move_right
SYS FWDR:SYS FWDL:SPEED_L=100:SPEED_R=0:return
#move_left
SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=100:return
'---------------------------------------------
Danke für jede Hilfe
Gruss
Sinsibo