Hallo Maik,
eigentlich ganz einfach wenn es in ein Unterprogramm laufen soll: case 3 = Gosub Unterprogramm (für Fall 3). Du kannst den case auch in innerhalb der angesprungenen Sub erneut auswerten sofern er sich noch nicht geändert hat. Und das kann man ja gut steuern
Nur wenn man die Bedingungen der For-Nextschleife tauschen möchte - das gilt es ja mal zu prüfen ob es überhaupt geht, das zu Laufzeit zu ändern(?) - also hoch und runter zählen möchte, dann benötigt man irgendwie einen wechsel mit dem Stepper als Variable damit der Step negativ wird. Da gibt es z.b. die Lösung des
"stepwert = 1 (stepwert) *-1 " wird negativ oder eine Abzweigung den wert zu setzen.
Ich denke auch das es eine bessere Methode ist nicht mit einem Mischzustand im Zähler-/Timingbereich indirekt zu arbeiten - was jetzt also so 2er Steps z.b. betrifft. Damit holt man sich einfach zu viele unnötige Stolpersteine rein. Lieber den Zähler normal Zählen lassen - übrigens benötigt man den nicht beim hochzählen, weil er im Hintergrund auf 1 voreingestellt ist und dann ohne weiteres zu tun genutzt wird. Beim runterzählen benötigt man aber zwingend das Minus (-) vor der geschriebenen 1.
Ich finde die Idee mit dem zweiten Taster zu toggeln garnicht so schlecht. Wenn du darauf einen Interrupt legst, und innerhalb dessen toggelst, dann kannst du in dem ersten case für z.b. "rot" PWM mit if (Taster2 = 1) then...das Fading einleiten indem du hier gleich die 3 PWM-Wert auf Variablen setzt und dann dort heraus eine FadingSUB anspringst. Dieser eine Sub wird jetzt mit den drei PWM-Werten betrieben - und ob die jetzt hoch und anschliessend wieder runter zählt oder ob man da noch einige Codetricks anwenden kann spielt kaum noch eine Rolle. Der Übersicht halber die einfachst Art benutzen.
Warum wird der Zähler bei blau durch 4 geteilt?
Na, ich hoffe es hilft dir.
Viele Grüße
Jörg
Lesezeichen