Hallo,
ich brauche mal wieder eure Unterstützung in Sachen MSP430G2553. Jetzt
geht es um PWM, aber über Port 2.
Der folgende Code war ein Sample, LED angesteuert über PWM mit Port 1.6
mit TA0.1. Es läuft wie es laufen sollte.
Für meine Schaltung habe ich Port 2.0 mit TA1.0 gewählt. Über Port 2.0
kommt kein Signal heraus.
1 | #include <msp430.h>
|
2 |
|
3 | #define LED BIT6;
|
4 | #define PWM_P20 BIT0 // OUT-Signal, PWM, Port 2.0
|
5 |
|
6 | int main(void)
|
7 | {
|
8 | WDTCTL = WDT_MDLY_32; // Watchdog 32ms (1Mhz SMCLK)
|
9 | IE1 |= WDTIE; // Watchdog-Interrupt ein
|
10 |
|
11 | P1DIR |= LED; // LED als Ausgang
|
12 | P1SEL |= LED; // LED via PWM (Timer A0, TA0.1)
|
13 | TA0CCR0 = 100; // PWM-Periode 100 = 11,1 kHz
|
14 | TA0CCR1 = 1; // PWM-Duty-Cycle (initial)
|
15 | TA0CCTL1 = OUTMOD_7; // PWM-Output-Mode (siehe Datenblatt)
|
16 | TA0CTL = TASSEL_2 + MC_1; // Timer A0: SMCLK (1MHz) CCR0 aufwaerts
|
17 |
|
18 | P2DIR |= PWM_P20; // Ausgang für PWM
|
19 | P2SEL |= PWM_P20; // TA1.0 gewählt
|
20 | TA1CCR0 = 100; // PWM-Periode 100 = 11,1 kHz
|
21 | TA1CCR1 = 1; // PWM-Duty-Cycle (initial)
|
22 | TA1CCTL1 = OUTMOD_7; // PWM-Output-Mode (siehe Datenblatt)
|
23 | TA1CTL = TASSEL_2 + MC_1; // Timer A: SMCLK (1MHz) CCR0 aufwaerts
|
24 |
|
25 |
|
26 | _BIS_SR(LPM0_bits + GIE); // Low Power Mode 0 und Interrupte ein
|
27 | return 0;
|
28 | }
|
29 |
|
30 | //***************************************
|
31 | // Interrupt-Routine WatchDog
|
32 | //***************************************
|
33 | #pragma vector=WDT_VECTOR
|
34 | __interrupt void watchdog_timer(void)
|
35 | {
|
36 | static int direction = 1;
|
37 | TA0CCR1 += direction*5; // PWM-Duty-Cycle neu setzen
|
38 | TA1CCR1 += direction*5; // PWM-Duty-Cycle neu setzen
|
39 | if( TA0CCR1 > 95 || TA0CCR1 < 5 ) // Richtung umschalten
|
40 | direction = -direction;
|
41 | }
|
Nach dem Datenblatt des µC haben wir Timer_A3 mit TA0 und TA1. So wie
ich das Seite 16 im Datenblatt entnehme sind beide Timer gleichwertig.
http://www.ti.com/lit/ds/symlink/msp430g2513.pdf
Eigentlich sollte es aus meiner Sicht auch über Port 2 funktionieren.
Ich habe einen Thread gefunden, der mich darin etwas bestärkt hat.
Beitrag "msp430g2553 - drei PWM-Ausgänge?"
Nun ja, etwas fehlt noch.
mfg klaus