Gast
#1859218
Hallo zusammen, ich habe folgende Aufgabe zu lösen (AT90USB1287): nachdem ein externer Interrupt (fallende Flanke) vom MC detektiert wurde, soll der externe Interrupt-Eingang für 100ms für weitere Flanken gesperrt werden und nach Ablauf der Zeit wieder für den Empfang freigegeben werden. Anbei meine beiden Interruptroutinen:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
Sobald ein externer Interrupt empfangen wird, wird durch die zugehörige Interruptroutine das Maskregister auf 0 gesetzt und ein Timer aktiviert. Nach 100ms erfolgt ein Timerinterrupt, welcher die Sperrung des externen Interrupts rückgängig machen soll. Allerdings funktionieren die Routinen nicht so wie sie sollen, da innerhalb der Totzeit auf weitere externe Flanken reagiert wird. Was mache ich falsch? Gruß Jens