Hi, kann ich so einen Pin abfragen der als Eingang genutzt wird? if ((P2IN & 0x02) == FALSE) error = 1; Ich möchte wissen ob der Pin2.1 H oder L ist ;)
Was auch immer "FALSE" sein mag, im Prinzip geht das tatsächlich so. (mal angenommen, daß FALSE = 0)
1 | if (!(P2IN & 0x02)) |
2 | error = 1; |
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.
1 | if( (P3IN & BIT7) == 0x01) |
wird niemals 0x01 sein... höchstens 0x80 ;-) Einfach
1 | if (P3IN & BIT7) |
abfragen
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.