MSP430 2013 XOUT/XIN ansteuern

OP (Firma: Keine) #2415763
Lesenswert?
• ▲
▼
Triviales Problem;
Ich versuche einen MSP430 2013 Microkontroller zu programmieren, ich 
benötige hierbei alle 10 PIN's als Outpins.

Die ersten 8 waren einfach durch P1DIR |= 0xff; auf Outpin zu setzen und 
mit
P1OUT |= BIT0 (als Beispiel) anzusteuern.

Jedoch funktioniert das bei XIN und XOUT nicht.
Laut Datenblatt sind dies auf P2.6 & P2.7 zu erreichen. Mit den befehlen
P2DIR |= 0xff; //(um BIT0 bis BIT7 als Ausgang zu setzen)
P2OUT |= BIT6; //(oder BIT7)
zeigten die PIN's keine Reaktion.
Hier eine Zeichnung der PIN Verteilung:
http://www.assembla.com/spaces/msp430/documents/bslClu058r3zFJab7jnrAJ/download?filename=F20x3_device_pinout.JPG

Mit welchem Befehl kann ich das erreichen?

Weiters hätte ich noch die Frage wie ich einen Delay einbauen kann,
ich hatte bereits folgende Methode die jedoch sehr umständlich ist:
    i = 50000;
    do (i--);
    while (i != 0);
Geht das auch einfacher?

Vielen Dank, LEDOmsig
Angehängte Dateien:
Persönliche Seite #2415788
Lesenswert?
• ▲
▼
Omsig Hollow schrieb:
> Jedoch funktioniert das bei XIN und XOUT nicht.
> Laut Datenblatt sind dies auf P2.6 & P2.7 zu erreichen.

Das sind sie aber nur, wenn die Funktionalität als Anschluss für einen 
externen Quarz deaktiviert ist.

Besorg Dir dringend den "Family User's Guide" (slau144h), die für Dich 
relevanten Seitennummern erwähne ich im folgenden:

Interessant ist das Kapitel 8 "Digital I/O Operation", genauer der Punkt 
8.2.5 "Function Select Registers PxSEL and PxSEL2"

Für jeden der 8-Bit I/O-Ports gibt es dieses Registerpaar, beim 'F2013 
also P1SEL/P1SEL2 und P2SEL/P2SEL2. Für Dich hier von Bedeutung ist also 
P2SEL/P2SEL2.

Für jeden der Portpins (P2.0 bis P2.7) ist in jedem dieser Register 
jeweils ein Bit vorgesehen, die Bedeutung ist in der Tabelle auf S. 331 
aufgelistet.
Damit der betreffende Pin als I/O genutzt werden kann, muss das 
korrespondierende Bit sowohl in P2SEL als auch P2SEL2 auf 0 gesetzt 
werden.

Die auf S. 335 beschriebene Reset-Initialisierung (PUC) aber tut genau 
das nicht, da wird P2SEL mit 0xC0 initialisiert - und damit ist die 
"Primary peripheral module function" für P2.6 und P2.7 aktiviert.

Also: Initialisere P2SEL mit 0, und Du kannst P2.6 und P2.7 wie die 
anderen Bits des Ports ansteuern.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.