Forum: Mikrocontroller und Digitale Elektronik Peda-Entprellung - eine kurze Frage


von Wero (Gast)


Lesenswert?

So, mal wieder die PeDa-Entprellung...
Ich habe sie bei mir implementiert und angepasst und sie läuft 1A - 
vieln Dank dafür PeDa!!!

Aber jetzt habe ich dennoch eine Frage:

Ich möchte einen Wert hochzählen - und zwar hätte ich gerne, dass wenn 
man die Taste gedrückt hält, der Wert kontinuierlich weiter hoch gezählt 
wird. Im Moment muss ich die Taste wieder loslassen, damit der 
Tastendruck erkannt wird.

Wie kann ich das realisieren? Und am besten, dass nach einer gewissen 
Zeit das Hochzählen beschleunigt wird. Geht das?


Gruß, Wero

von Karl H. (kbuchegg)


Lesenswert?

Wero schrieb:

> Wie kann ich das realisieren? Und am besten, dass nach einer gewissen
> Zeit das Hochzählen beschleunigt wird. Geht das?

Beschleunigen nicht.
Aber ansonsten ist das die eingebaute Repeatfunktionalität.

Du musst die Taste (beim #define) für den Repeat freigeben und deine 
Tastenabfrage erweitern
1
// KEY1 wird für Repeat freigegeben
2
#define REPEAT_MASK     (1<<KEY1)
3
4
...
5
6
    // wenn Taste gedrückt wurde oder der Autorepeat bei
7
    // längerem Drücken kommt
8
    if( get_key_press( 1<<KEY1 ) || get_key_rpt( 1<<KEY1 )) {
9
      counter++;
10
    }

In gewissen Grenzen kann man die Rate, mit der der Autorepeat arbeitet 
mit diesen beiden Makros
1
#define REPEAT_START    50                        // after 500ms
2
#define REPEAT_NEXT     20                        // every 200ms
beeinflussen. Einfach REPEAT_NEXT kleiner setzen, dann zählt dein Code 
schneller hoch/runter

von Wero (Gast)


Lesenswert?

Hey super, danke schonmal, da hätte ich auch selber drauf kommen 
können...:)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.