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 :)
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).
Die Code-Beispiele von TI können für den Anfang ganz nützlich sein: http://www.ti.com/litv/zip/slac463a
Vielen Dank für die Antworten :) Habe mit euren Information sehr viel anfangen können. Anbei habe ich noch ein paar weitere fragen ;) : Wie kann man einen Port als Eingang setzten ? Wie schreibe ich eine IF Anwendung ? (z.B. S2 wird gerdückt dann soll LED grün leuchten)
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)
|
Hey dankeschön :) Ich müsste noch wissen welche Register (mit Name, Funktion etc.) beschrieben werden ? Also mehr oder weniger eine einfache Erklärung bzw. definition damit man dass "leicht" versteht ;)
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.