Hallo,
ich habe an meinem MSP430F2122 an Port P1.0 einen Taster angehängt (zu
GND), um den uP per Interrupt aufzuwecken und wieder schlafenzulegen.
Allerdings wird der Breakpoint in der ISR nie ausgelöst.
Der Timer-Interrupt funktioniert aber.
Kann mir jemand helfen, den Fehler zu finden?
Der Port ist als Eingang mit dem eingebauten Pull-Up-Widerstand
konfiguriert. Da dies der einzige Interrupt von P1 ist, entfällt die
auswertung des Interruptvektors.
Den Taster habe ich überprüft, der funktioniert.
1 | // direction: 1=out
|
2 | P1DIR = 0x0C; // P1.2 and P1.3 are outputs, the rest inputs
|
3 |
|
4 | // out signal: 1=high (or pullup, if REN=1)
|
5 | P1OUT = 0xF3;
|
6 |
|
7 | // resistor: 1=pullup/-down resistor enabled (see OUT)
|
8 | P1REN = 0xF3;
|
9 |
|
10 | // interrupt
|
11 | P1IE = 0x01; // enable interrupt for P1.0 (On/Off button)...
|
12 | P1IES = 0x01; // ...on high-to-low transition
|
13 |
|
14 | // special function selection
|
15 | P1SEL = 0x0C;
|
16 |
|
17 |
|
18 |
|
19 | // P1 ISR (On/Off Button)
|
20 | #pragma vector = 0x04
|
21 | __interrupt void OnOffButton(void)
|
22 | {
|
23 | // blah...
|
24 | __NOP();
|
25 | return;
|
26 | }
|