Hallo Zusammen,
die Visu Signale an die Eingänge von S1 und S2 zu bringen geht schon in die richtige Richtung. Blind Input merkt sich die letzte Fahrtrichtung bzw. belegt die interne Variable dir für die nächste Fahrt vor.
Allerdings braucht der Baustein Blind_Input eine Modifikation.
Ich habe einen separaten Eingang für Single Taster S0 hinzugefügt, wie S1 oder S2 entprellt und Zeile 7 bzw 8 des Codes entsprechend modifiziert:
Vor der Änderung:
(* inputs S1 and S2 are debounced and then decoded for multiple clicks *)
s1e(in := S1, pt := DEBOUNCE_TIME);
s2e(in := S2, pt := DEBOUNCE_TIME);
s1d(in := (s1e.Q AND NOT SINGLE_SWITCH) OR (s1e.Q AND SINGLE_SWITCH AND dir), t_long := CLICK_TIME);
s2d(in := (s2e.Q AND NOT SINGLE_SWITCH) OR (s1e.Q AND SINGLE_SWITCH AND NOT dir), t_long := CLICK_TIME);
Nach der Änderung:
(* inputs S0, S1 and S2 are debounced and then decoded for multiple clicks *)
s0e(in := S0, pt := DEBOUNCE_TIME);
s1e(in := S1, pt := DEBOUNCE_TIME);
s2e(in := S2, pt := DEBOUNCE_TIME);
s1d(in := (s1e.Q) OR (s0e.Q AND dir), t_long := CLICK_TIME);
s2d(in := (s2e.Q) OR (s0e.Q AND NOT dir), t_long := CLICK_TIME);
in Zeile 30 und 41 würde ich das dir:= NOT dir; abändern und Hart auf True oder False setzen.
Also Zeile 30 dir:= False; und Zeile 41 dir:= True;.
Müsste aber auch so funktionieren.
Die Setup Variable Single_Switch wird dann nicht mehr benötigt.
Gruß Jens