Hat jemand eine Idee wie man es am einfachsten realisieren kann das IRMP einen gedrückten Tastendruck nur als einmal gedrückt erkennt? Ich möchte gerne mit ein und der selben Taste eine LED EIN und wieder ausschalten. Da die Fernbedienung bei gedrückter Taste permanent das gleiche Signal sendet toggelt die LED dadurch ja ständig. Man müßt also irgendwie dem Programm mitteilen das erst wieder reagiert werden soll wenn die Taste losgelassen wurde. Wie gehe ich da am besten ran? Mittels Timer? Oder hat jemand noch eine andere Idee?
Lokus Pokus schrieb: > Da die Fernbedienung bei gedrückter Taste permanent das gleiche Signal > sendet Seit wann ist das so ?
keine Ahnung, sag dus mir?
Hängt allein vom Code der FB ab. Z.B. beim RC5-Code sagt Dir das Toggle-Bit, ob nochmal gedrückt wurde. Bei lange Drücken bleibt das Toggle-Bit auf seinem Wert.
Lokus Pokus schrieb: > Hat jemand eine Idee wie man es am einfachsten realisieren kann das IRMP > einen gedrückten Tastendruck nur als einmal gedrückt erkennt? Ganz einfach
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Das ist auch so im IRMP-Artikel erklärt, such einfach nach "Entprellen" von Tasten im Artikel.
Ahh, ok. Danke euch!
Peter Dannegger schrieb: > Hängt allein vom Code der FB ab. Nein, IRMP erkennt das unabhängig von einem evtl. vorhandenen Toggle-Bit. Das altertümliche RC5 ist längst tot, vergiss es ;-)
Frank M. schrieb: > Nein, IRMP erkennt das unabhängig von einem evtl. vorhandenen > Toggle-Bit. War nur ein Beispiel. Andere Code haben einen anderen Mechanismus dafür. Wenn die Lib das schon auswertet, dann sollte man mal die Doku zu der Lib lesen. Ich benutze ja auch nicht printf(), ohne in das Manual geschaut zu haben.
Peter Dannegger schrieb: > Wenn die Lib das schon auswertet, dann sollte man mal die Doku zu der > Lib lesen. ACK. War auch 'ne Menge Arbeit, die zu erstellen ;-)
Irgendwie ändert sich da nichts wenn ich die Entprell-Funktion einbaue. Der Code sieht so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
Einfach die Logik überdenken: Body von if() und else() vertauschen, dann sollte es klappen - wenn der restliche Code ok ist und das macht, was du dir denkst.
Lokus Pokus schrieb: > Irgendwie ändert sich da nichts wenn ich die Entprell-Funktion einbaue. Dirk hat da schon Recht: Weil Du genau dann reagierst, wenn Du die Taste länger gedrückt hältst. Das ist genau falsch herum. Entweder: - Du schreibst den Code in den Else-Block Oder: - Du schreibst das if um: if (! (irmp_data.flags & IRMP_FLAG_REPETITION)) Dann kann der else-Block entfallen. Such Dir das aus, was Dir besser gefällt.
Ja, genauso funkts. Danke euch!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.