...genau, dieser umstand ist mir bewusst. deswegen hab ich ja in die
Interrupt-routine jeweils eine port-zustandsabfrage eingebaut mittels
1 | if(PORTBbits.RB7) {... tu das ...}
|
normalerweise müsste die anweisung der if-schleife nur ausgeführt
werden, wenn RB7 HIGH ist (layout-bedingt bei mir = Taste gedrückt) ,,
wenn ich taste loslasse erfolgt zwar ein weiterer Interrupt, aber
softwaremäßig dürfte er nichts ausführen, bis auf flags löschen..
1 | #define Taste1 PORTBbits.RB7
|
2 |
|
3 |
|
4 |
|
5 | #pragma interruptlow MY_LOW_HANDLER
|
6 | void MY_LOW_HANDLER(void)
|
7 | {
|
8 | if(INTCONbits.RBIF)
|
9 | {
|
10 | INTCONbits.RBIE = 0;
|
11 | INTCONbits.RBIF = 0;
|
12 | if(Taste1)
|
13 | {
|
14 | Clear_LCD();
|
15 | MenuFlag += 1;
|
16 | //MenuFlag <<=1;
|
17 | }
|
18 | INTCONbits.RBIE = 1;
|
19 | }
|