Mach mal das Do und das Loop weg. Wenn die Schleife nur von 0-2 laufen soll ist es bischen unnütz diese 3 Schleifendurchläufe dann in eine Endlosschleife zu packen oder?
Hallo,
ich hab folgenden code:
der geht nicht....die for next schleife wird nicht wiederholt...sondern nur einmal ausgeführt...(quasi ohne for next schleife)Code:do gosub trigger For I = 0 To 2 Gosub 10 Gosub 0 Gosub 01 Gosub 1 Next I loop
ziel ist, dass
mehrfach ausgeführt wird.Code:Gosub 10 Gosub 0 Gosub 01 Gosub 1
warum gelingt das nicht?
die subs sind korrekt mit "label:" und "return"
Mach mal das Do und das Loop weg. Wenn die Schleife nur von 0-2 laufen soll ist es bischen unnütz diese 3 Schleifendurchläufe dann in eine Endlosschleife zu packen oder?
das do loop ist die hauptschleife...
das in der for next schleife wird eine präambel, also eine zeit lang der gleiche code....
danach folgt ein anderer indvidueller code, dass ganze wiederholt sich dann....
for next wird am ende ca. 600 erreichen...
Dies läuft bei mir im Simulator.Code:Dim I As Byte do gosub trigger For I = 0 To 2 Gosub 10 Gosub 0 Gosub 01 Gosub 1 Next I Loop 10: Print "10" Return 0: Print "0" Return 01: Print "01" Return 1: Print "1" Return Trigger: Print "trigger" Return
Eventuell liegt der Fehler bei dir in einer der Unterprogramme. Weil die For-Next Schleife sieht soweit in Ordnung aus.
benutzt Du die Variable "I " auch in einer Subroutine?
Wenn ja hängts daran, dass dort der Wert gesetzt
wird und die for-Next dann aufgrund des neuen Wertes
verlassen wird.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Da wird wohl I in einer der Subs benutzt.
Eine weitere Möglichkeit:
edit:Code:do gosub trigger gosub VierSubs gosub VierSubs gosub VierSubs loop end VierSubs: Gosub 10 Gosub 0 Gosub 01 Gosub 1 return
@Vitis: gleicher Gedanke...
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Bist du sicher, dass er z.B. bei GOSUB 0 den Label anspringt und nicht die Adresse 0
Oder ist das ein "O" ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Stimmt, ist mir gar nicht aufgefallen. Gosub 0 sollte man nicht verwenden. Überhaupt reine Zahlen...
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Bascom verarbeitet das so wie es da steht. Auch das Label 0: wird angesprungen. Hatte ich doch oben geschrieben.Zitat von PicNick
Allerdings geht jetzt kein Goto 0 mehr, um einen Pseudo-Reset durchzuführen.
Ansonsten ist das ja ganz normal, Labels als Zahlen zu haben.
Ich wüsste keinen Grund, warum man das nicht machen sollte. Höchstens das Labels sinnhafte Namen haben sollten.
Lesezeichen