Ich versuche gerade in C eine Tastenabfrage zu erstellen. Bei kurzem Druck soll eine Variable hochgezählt werden. Bei langem Druck soll die aktuelle Variable ins EEPROM gespeichert werden:
1 | while(1) |
2 | {
|
3 | PORTD = pgm_read_byte(&Tabelle[nKeyPress]); |
4 | if (bit_is_clear (PINB, PINB0)) |
5 | {
|
6 | if (bPortB) // wenn Taster gedrückt |
7 | {
|
8 | dauer++; |
9 | }
|
10 | else // wenn nicht gedrückt |
11 | {
|
12 | if (dauer > 10) |
13 | {
|
14 | if (nKeyPress < 8) |
15 | {
|
16 | nKeyPress++; |
17 | bPortB = 0; |
18 | }
|
19 | else
|
20 | {
|
21 | nKeyPress = 0; |
22 | bPortB = 0; |
23 | }
|
24 | }
|
25 | if (dauer > 20) // wenn länger gedrückt |
26 | {
|
27 | eeprom_write_byte(&eeFooByte, nKeyPress); |
28 | dauer = 0; |
29 | Warte (100); |
30 | }
|
31 | }
|
32 | }
|
33 | else
|
34 | {
|
35 | bPortB = 1; |
36 | }
|
37 | }
|
38 | return 0; |
Ich komme nur einfach nicht klar damit. Ist das der richtige Weg?