Hallo,
ich habe an einem Gerät 16 Taster, die ich abfrage.
Hier das Beispiel für TASTER_0
1 | #define TASTER_0 (!(PINA & (1 << 0)))
|
2 |
|
3 | if (TASTER_0 == 1)
|
4 | {
|
5 | }
|
An einer Stelle im Programm soll eine Abfrage gemacht werden, ob ein
beliebiger Taster von insgesamt 16 Stück gedrückt wurde.
Das würde dann bedeuten:
1 | if (TASTER_0 == 1 | TASTER_1 == 1 | TASTER_2 == 1 | ......... )
|
Hat jemand eine Idee für mich, wie man das ganze eleganter lösen könnte?
So finde ich das ziemlich unübersichtlich.
Die Taster hängen kreuz und quer verteilt an den Ports, aus
Layouttechnischen Gründen. Wenn z.B. immer 8 Taster an einem Port hängen
würden, hätte man einfach prüfen können ob der Port !0 ist. Aber diese
Variante scheidet aus, da Ein- und Ausgänge gemischt an den Ports.
Ich programmiere mit dem 6er Studio von Atmel und einem ATMEGA644P.