MSP430g2231 Digital I/O

OP #2385640
Lesenswert?

Hallo,

ich arbeite zum ersten mal mit einem µC und habe dazu einige fragen zum 
Thema "Digital I/O":

1. Welche Register muss ich mit welchem Wert beschreiben damit ich an 
Prot 1.0 die rote LED leuchten lassen kann ?

2. Welche Register muss ich mit welchem Wert beschreiben damit ich an 
Port 1.6 die grüne LED leuchten lassen kann ?

3. Welche Register muss ich mit welchem Wert beschreiben damit ich den 
Wert des Taster an Port 1.3 einlesen lassen kann ?


Jetzt schon einmal vielen Dank für eure Antworten :)
#2385705
Lesenswert?

P1OUT |= (1 << 0);

P1OUT |= (1 << 6);

P1DIR &= ~(1 << 3);
P1IN & (1 << 3)

Das kann eigentlich nur das Launchpad sein.

Der genannte Prozessor ist zwar im Launchpad dabei, aber für Einsteiger 
m. E. absolut nicht geeignet. Das liegt nicht am GPIO, sondern an der 
arg beschränkten sonstiger Peripherie (RAM, ein Timer, kein USART).
#2387100
Lesenswert?

Hast du dir mal die Beispiele von TI angeguckt? Da steht für den Start 
doch eigentlich alles drin, oder nicht?

hans wurst schrieb:
> Wie kann man einen Port als Eingang setzten ?

Alle Portpins sind ab Start als Eingang geschaltet. Ein gelöschtes Bit 
setzt einen Pin als Eingang.
1
P1DIR &= ~0x01; // P1.0 als Eingang

hans wurst schrieb:
> Wie schreibe ich eine IF Anwendung ? (z.B. S2 wird gerdückt dann soll
> LED grün leuchten)

Vorher musst du einen Pull-Up-Widerstand aktivieren, da der Taster nach 
Masse schaltet:
1
P1REN |= 0x08;
2
P1OUT |= 0x08;

Dann:
1
if( P1IN & 0x08 ) // Invertiert, da Pin 'low' wenn gedrueckt
2
{
3
  P1OUT &= ~0x01; // Weiß grad nicht, welche LED die gruene ist, sonst 0x40
4
}
5
else
6
{
7
  P1OUT |= 0x01;
8
}

Du solltest dir aber vielleicht besser Makros anlegen, wie z.B.
1
#define LED_GRUEN 0x01
2
#define LED_ROT   0x40
3
#define LED_PORT  P1OUT
4

5
...
6
...
7

8
LED_PORT |= LED_GRUEN;

Oder du definierst noch weiter:
1
#define LED_GRUEN_AN  (P1OUT |=  0x01)
2
#define LED_GRUEN_AUS (P1OUT &= ~0x01)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren