Forum: Mikrocontroller und Digitale Elektronik MSP430 Frage


von MarkMüller (Gast)


Lesenswert?

Hey ho =)

Ich habe hier auf der Seite folgenden Code gefunden:

Initialisierung von PWM

void init_PWM_TimerA(void)
{
  TACTL = TASSEL1 + TACLR;              // SMCLK, Clear Tar
  CCR0 = 512-1;                         // PWM Period
  CCTL1 = OUTMOD_7;                     // CCR1 reset/set
  P1DIR |= 0x04;                        // P1.2 PWM output
  P1SEL |= 0x04;                        // P1.2 and TA1/2 otions
  TACTL |= MC0;                         // Start Timer_A in up mode
}

Speziell geht es um den Teil:

P1DIR |= 0x04;                        // P1.2 PWM output
P1SEL |= 0x04;                        // P1.2 and TA1/2 otions

So wie ich das verstanden habe ist P1DIR mit 0 = Input Direction und 1 = 
Output Direction. Warum wird dort 0x04 zugewiesen ? Im Kommentar steht 
auch P1.2 ? Woran erkenne ich das ?
Bei P1SEL 0 = I/O und 1 = Peripherie.

Kann mir das jemand erklären ? =)

von Achim M. (minifloat)


Lesenswert?

MarkMüller schrieb:
> P1DIR |= 0x04;                        // P1.2 PWM output
> P1SEL |= 0x04;                        // P1.2 and TA1/2 otions

0x04 ist in Binärschreibweise 0b00000100. Man fängt bei Bit0 von rechts 
an zu zählen. Jetzt sollte dir ein Licht aufgehen, zumindest was P1DIR 
angeht.

mfg mf

von Tobi (Gast)


Lesenswert?

MarkMüller schrieb:
> Warum wird dort 0x04 zugewiesen ? Im Kommentar steht
> auch P1.2 ?

P1.2 ist der dritte Pin und 0x04 hat das dritte Bit gesetzt. Passt also.

MarkMüller schrieb:
> Woran erkenne ich das ?
> Bei P1SEL 0 = I/O und 1 = Peripherie.
>
> Kann mir das jemand erklären ? =)

Steht irgenwo im Users Guide. Für den mit dem ich zurzeit arbeite z.B. 
hier auf Seite 330/331.

http://www.ti.com/lit/ug/slau144h/slau144h.pdf

von MarkMüller (Gast)


Lesenswert?

Vielen Danke an euch beide =)

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
Noch kein Account? Hier anmelden.