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

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