Simple 2-channel hardware PWM example for the MSP430G2452 microcontroller

//
// 2-channel hardware PWM example for MSP430G2452
// Written by Ted Burke - last updated 2-11-2015
//

#include <msp430.h>
 
int main( void )
{
    // Watchdog timer
    WDTCTL = WDTPW + WDTHOLD; // Disable watchdog timer
    
    // Configure P1.2 (TA0.1) and P1.4 (TA0.2) for PWM output
    // To configure P1.2 as TA0.1: P1DIR.2=1, P1SEL.2=1, P1SEL2.2=0
    // To configure P1.4 as TA0.2: P1DIR.4=1, P1SEL.4=1, P1SEL2.4=1
    P1DIR  = 0b00010100;
    P1SEL  = 0b00010100;
    P1SEL2 = 0b00010000;
    
    // Configure Timer A
    TACTL = TASSEL_2 + ID_0 + MC_1; // Up mode, input divider=1, SMCLK clock
    TACCTL0 = OUTMOD_7;             // TA0.0 in Reset/Set output mode
    TACCTL1 = OUTMOD_7;             // TA0.1 in Reset/Set output mode
    TACCTL2 = OUTMOD_7;             // TA0.2 in Reset/Set output mode
    TACCR0  = 20000;                // Start timer with 20ms period
    
    while(1)
    {
        // P1.2 dim and P1.4 bright for 1 second
        TACCR1 = 2000;
        TACCR2 = 8000;
        __delay_cycles(1000000);
        
        // P1.2 bright and P1.4 dim for 1 second
        TACCR1 = 8000;
        TACCR2 = 2000;
        __delay_cycles(1000000);
    }
    
    return 0;
}
Advertisement
This entry was posted in Uncategorized. Bookmark the permalink.

3 Responses to Simple 2-channel hardware PWM example for the MSP430G2452 microcontroller

  1. Donné from Togo says:

    hello Ted please help me for 16f72 ups inverter technology

  2. hakan says:

    HELLO is it possible to get 3st pwm signal?
    i need three diffrent pwm because i am using rgb led an it has three leg

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s