Hallo.
Habe ein ähnliches Problem. Möchte PIN 3.7 nach High oder Low abfragen.
Je nach dem, ob ein Sensor angeschlossen ist oder nicht. Dementsprechend
soll dann eine LED leuchten.
1 | #include <msp430xG43x.h>
|
2 |
|
3 | //Vcc 3,34 V
|
4 | //MSP430FG439
|
5 |
|
6 | void main(void)
|
7 | {
|
8 | WDTCTL = WDTPW + WDTHOLD; // Stop Watch Dog Timer
|
9 |
|
10 | P1DIR |= BIT0; // P1.0 output direction red LED
|
11 | P5DIR |= BIT1; // P5.1 output direction yellow LED
|
12 |
|
13 | P3DIR &=~ BIT7; // P3.7 input direction
|
14 |
|
15 | P1OUT &=~ BIT0; // P1.0 off red LED
|
16 | P5OUT &=~ BIT1; // P5.1 off yellow LED
|
17 |
|
18 | if( (P3IN & BIT7) == 0x00){ // 0,26 V ohne Sensor
|
19 | P1OUT |= BIT0; // P1.0 on red LED
|
20 | }
|
21 | if( (P3IN & BIT7) == 0x01){ // 3,34 V wenn Sensor angeschlossen
|
22 | P5OUT |= BIT1; // P5.1 on yellow LED
|
23 | }
|
24 | }
|
Ohne Sensor mit der roten LED funktioniert's.
Mit Sensor leuchtet gelbe LED jedoch nicht.
Spannung von 3,34 V an wenn Sensor angeschlossen ist.
Würde gerne wissen, was an dem Code falsch ist.
p.s.: Mir ist klar, dass man einfach else schreiben könnte.