Hallo Leute,
ich hab eine Frage zu meinem Code und zwar.
Ich mache eine entprellte Tasten Abfrage. Wenn Taster gedrückt schiebe
eine 1 in eine variable an eine bestimmte Stelle.
Dann mache ich eine Switch case Vergleich.
Wenn
TasterZustand == 0x01 mach was,
TasterZustand == 0x02 mach was anderes,
TasterZustand == 0x03 was ganz anderes
Zustand die der vergleich bei 0x01 & 0x02 funktioniert. Da ist jeweils
nur ein Taster gedrückt.
Aber wenn ich die beiden Gleichzeitig drücke passiert da irgendwie nix.
Wieso?
(Das ich nach den Code dann in der zweiten while Schleife gefangen bin
ist mir klar. ist nur zum Verständnis gedacht)
Alex schrieb:> Aber wenn ich die beiden Gleichzeitig drücke passiert da irgendwie nix.> Wieso?
Weil es dir kaum gelingen wird, deine beiden Taster exakt in derselben
Mikrosekunde zu drücken. Irgendeine der beiden drückst du zuerst.
> Müsste er dann nicht einfach nach einander die Einsen in die> Variable schieben?
Nö, wieso sollte er?
Von der Funktion taster kriegst du genau ein einziges mal eine 1 zurück,
nämlich in dem Moment, in dem du das Niederdrücken registrierst. Ist
diese 1 einmal gekommen, kommt sie bis zum Loslassen des Tasters nicht
mehr.
(Ich spar mir jetzt zu sagen, dass diese Art der Entprellung ungeeigent
ist)
Hallo Alex,
ich denke, das ist ein Timing-Problem: so genau gleichzeitig kannst du
die Taster wahrscheinlich gar nicht drücken, dass sie in einem
Schleifendurchlauf als steigende Flanke erkannt werden. Wahrscheinlich
erkennt die Schleife bei einem Durchlauf nur einen der Taster als
gedrückt, und TasterZustand enthält 0x01 oder 0x02. Im nächsten
Durchlauf wird dann der andere Taster erkannt. Aber eben nur der, denn
beim anderen Taster handelt es sich nicht mehr um eine steigende Flanke.
Ich weiß jetzt nicht genau, was das Programm machen soll, als erste
Maßnahme würde ich mal auch bei "Taster wird gehalten" rw=1 zurückgeben,
dann sollte es gehen.
Gruß
Karlheinz
Alex schrieb:> Aber wenn ich die beiden Gleichzeitig drücke passiert da irgendwie nix.> Wieso?
Das zeitliche Fenster, in dem dieses "Gleichzeitig" passieren müsste,
ist verdammt klein. Du schaffst es halt nicht, sie mit der Hand wirklich
gleichzeitig zu drücken, und das auch noch an der passenden Stelle im
Code.
Alex schrieb:> Ich mache eine entprellte Tasten Abfrage.
Wo denn? Ich sehe da nur eine Flankenerkennung, aber keine Entprellung.
Eine eigene Frage?
Dieser Thread ist über 14 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.