INFO - FAQ - CC2-Forum - CCPro-Forum |
Hello, Maybe THIS LINK can help you out with your problem. Greetings H.J. Windt > Hallo > > Ich hoffe das ich nun das richtige Forum gefunden habe. > 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 |