Ja, die Entprellung hatte ich sogar vor kurzem noch drinn.
Sah dann so aus:
1 | while(1)
|
2 | {
|
3 | if (bit_is_clear (PINB, 6))
|
4 | {
|
5 | if (bPortB)
|
6 | {
|
7 | if ( gKeyCounter > CNTDEBOUNCE )
|
8 | {
|
9 | if (gKeyCounter == CNTREPEAT) // Code fuer "Taste lange gedrueckt"
|
10 | {
|
11 | eeprom_write_byte(&eeFooByte, nKeyPress);
|
12 | }
|
13 | else // Code fuer "Taste kurz gedrueckt"
|
14 | {
|
15 | PORTD = pgm_read_byte(&Tabelle[nKeyPress]);
|
16 | if (nKeyPress < 8)
|
17 | {
|
18 | nKeyPress++;
|
19 | bPortB = 0;
|
20 | }
|
21 | else
|
22 | {
|
23 | nKeyPress = 0;
|
24 | bPortB = 0;
|
25 | }
|
26 | }
|
27 | }
|
28 | }
|
29 | }
|
30 | else
|
31 | {
|
32 | bPortB = 1;
|
33 | }
|
34 | }
|
Hatte ich aber wieder rausgenommen, weil ich dachte das die hier nicht
von nöten wäre.
Das alleine dürfte aber nicht das Problem sein glaub ich.
Ich möchte gerne eine Tastenabfrage haben die prüft ob diese kürzer als
2 Sekunden gedrückt wurde und dann dementsprechend den Code für Kurz und
für langen Tastendruck ausführt.