Ich habe da noch möglicheriweise ein Problem mit dem EInlesen eines IO
Pins.
Mit dem IO Pin so ein SIgnal eingelesen werden. Sobald der Pegel von
HIGH nach LOW wechselt soll der Interrupt ausgelöst werden. Der IO Pin
soll einen internen Pullup Wiederstand nutzen und auf Input High
geschaltet sein. Mache ich da womöglich was falsch?
1 | #define IO_ENABLE_PORT GPIO_PORT_P1
|
2 | #define IO_ENABLE_PIN GPIO_PIN5
|
3 | #define IO_OUT GPIO_PIN3
|
4 |
|
5 |
|
6 | GPIO_setAsInputPin(IO_ENABLE_PORT, IO_OUT);
|
7 |
|
8 | GPIO_enableInterrupt(IO_ENABLE_PORT, IO_OUT);
|
9 | GPIO_interruptEdgeSelect(IO_ENABLE_PORT, IO_OUT, GPIO_HIGH_TO_LOW_TRANSITION);
|
10 | GPIO_clearInterruptFlag(IO_ENABLE_PORT, IO_OUT);
|
11 | P1REN |= BIT3;
|
12 | P1OUT |= BIT3;
|
13 |
|
14 |
|
15 | #pragma vector = PORT1_VECTOR
|
16 | /*FUNCTION*/ __interrupt void requestLine_interrupt()
|
17 | {
|
18 | if(P1IFG & IO_OUT)
|
19 | {
|
20 | // increment counter
|
21 | GPIO_clearInterruptFlag(GPIO_PORT_P1, GPIO_PIN3);
|
22 | }
|
23 | }
|
MSP430 genauer TYP: MSP430FR5949