Hallo zusammen
Ich habe folgende Ausgangslage:
- Einen Attiny48 mit 4 Tastern an PORTD
- Zwei sind low-active, zwei sind high-active
- Per Interrupt in der Software muss erkannt werden, welcher Taster
gedrückt wurde
Das Problem:
Ich habe nur ein Interruptflag für den ganzen Port. Ich habe keine
nennenswerte Lösung, wie ich erkennen kann, welcher Taster gedrückt
wurde. Da es Interruptgesteuert ist, brauche ich eine zeit-kurze Lösung.
Zugleich wird eine Tasterentprellung per Software mit einem Timer
gemacht.
1 | // PORTD interrupt routine; any switch were pressed
|
2 | ISR(PCINT2_vect)
|
3 | {
|
4 | // start debouncing
|
5 | }
|
6 |
|
7 | // debouncing timer interrupt routine
|
8 | ISR(TIMER0_COMPA_vect)
|
9 | {
|
10 | // ... do something
|
11 | }
|
MfG und danke für Lösungsvorschläge