Gast
#1331967
Salu zusammen Ich habe noch nie etwas mit Timern gemacht. Nun habe ich mir hier einen RGB Controller gebaut. Dieser liest die Werte für die Intensität der einzelnen Farben über einen AD Wandler ein (Potis). Nun möchte ich gerne je nach Poti Stellung ein entsprechendes PWM Signal erzeugen und an den Pins TB0 - TB2 ausgeben (Pin 36-38 / MSP430F149) Denkt ihr die folgende Initialisierung des Timers B ist so korrekt wie ich mir das überlegt habe? Die Frage die sich mir immer noch stellt ist, wie bekomme ich jetzt die entsprechende PWM auf die Pins P4.0-4.2? ACLK ist 1MHz. Hier beschreibe ich einfach einmal das CCR2 Register. Ist jetzt CCR1 für P4.0, CCR2 für P4.1 usw, oder sehe ich da etwas falsch? Irgendwie habe ich einfach ziemliche Probleme mit dem Verständnis wie ich die PWM rausbekomme. Wie ein Timer funktioniert habe ich denke ich verstanden. Wäre echt froh wenn ich von Euch Hilfe bekommen würde. Achja, wie gross würded ihr period wählen? Gruss reflection void PWM(int duty, int period) { TBCTL = MC0; // Stop the timer TBCTL = TBSSEL_2 + TBCLR; // ACLK, Clear Tar TBCCR0 = period; // PWM Period TBCCTL2 = OUTMOD_7; // CCR2 reset/set TBCCR2 = dutycycle; // CCR2 PWM duty cycle P4DIR |= 0x07; // P4 output P4SEL |= 0x07; // P4 option TBCTL |= MC0; // Start Timer_B in up mode }