Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

For Schleife mit CCRP5 und CCBASIC Kategorie: Programmierung (von L33der - 12.01.2006 12:24)
Ich nutze:
CCRP5 Conrad Robby5 mit CC2-Unit, original OS
Hallo

Ich habe meinen Roby erst vor kurzem gekauft und wollte nun dass er ein Viereck abfährt und nach jeder
Drehung ein Led an macht. Damit er beim 4. Mal aufhört lasse ich es mit einer For Schleife abfragen.
Doch anstat immer schön der Reihe nach die Schritte durch zu gehen führt er sie wilkürlich aus und
stopt nicht.


 DEFINE anzahl BYTE[1]



'---------- 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

'               mainloop
'----------------------------------------------
FOR anzahl = 1 TO 4 step 1
if anzahl=1 THEN gosub led_1
if anzahl=2 THEN gosub led_2
if anzahl=3 THEN gosub led_3
if anzahl=4 THEN gosub led_4
NEXT

#led_1
gosub LED1ON
gosub CLR_DISTANCE
gosub fahren
pause 5:SYS COMNAV_STATUS
SPEED_L=0:SPEED_R=0:SYS FWDR:SYS FWDL
pause 50:SYS COMNAV_STATUS
return

#led_2
gosub LED2ON
gosub CLR_DISTANCE
gosub fahren
pause 5:SYS COMNAV_STATUS
SPEED_L=0:SPEED_R=0:SYS FWDR:SYS FWDL
pause 50:SYS COMNAV_STATUS
return

#led_3
gosub LED3ON
gosub CLR_DISTANCE
gosub fahren
pause 5:SYS COMNAV_STATUS
SPEED_L=0:SPEED_R=0:SYS FWDR:SYS FWDL
pause 50:SYS COMNAV_STATUS
return

#led_4
gosub LED4ON
gosub CLR_DISTANCE
gosub fahren
pause 5:SYS COMNAV_STATUS
SPEED_L=0:SPEED_R=0:SYS FWDR:SYS FWDL
pause 50:SYS COMNAV_STATUS
return

beep 368,10,0
goto stop
'                   fahren
'-----------------------------------------------

#fahren
print "fahren"
gosub move_fwd
pause 5:SYS COMNAV_STATUS
gosub L_DISTANCE
print "lbyte="; lbyte
if LBYTE = 20 then gosub drehung else goto fahren
return

'   stop move_fwd turn
'--------------------------------------------
#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
#turn
SYS FWDR:SYS FWDL:SPEED_L=0:SPEED_R=155:return


'         drehung
'---------------------------------------------
#drehung
gosub CLR_DISTANCE
gosub turn

#zähl_loop
pause 5:SYS COMNAV_STATUS
gosub R_DISTANCE
print "links"; lbyte
If lbyte < 10 Then GoTo zähl_loop
return


Für mich sieht es so aus als ob ich ein Problem mit der Speicherbelegung hätte und verschiedene Daten
zum Teil überschrieben werden.
Ich hoffe das mir Jemand da weiter helfen kann. Denn ohne eine For Schleife ist man sehr eingeschränkt.

Greats L33der  


    Antwort schreiben


Antworten:

Re: For Schleife mit CCRP5 und CCBASIC (von Rene Forster - 12.01.2006 18:27)