Quantcast
Channel: MSP430 Technical Forums
Viewing all articles
Browse latest Browse all 2077

Simple PWM using timer

$
0
0

All,

 

Can I output a PWM signal to P1.0 pin (G2231 chip) using timer A in up mode and setting CCR0 / CCR1 accordingly?

 

In short, I was going to use the example code provided by TI (see slac163 and slaa428, example I'm using is the "C" code msp430x21x2_ta_1.c), where pin P1.2 is used for the PWM output.

 

Well, I tried to modify the code to output the signal to P1.0 but can't get it to work. My conclusion is that P1.0 cannot be selected for such function, but I cannot find anythere in the user guide or datasheets a confirmation. In fact, by reading the datasheet (page 6) I had understood it can do that... (link).

 

What am I doing wrong? Can the timer output be in pin P1.0?

 

Here is the code I'm using - below it is set to output to pin P1.2, but there's commented code for pin P1.0 that I tried using.

#include <msp430.h>
#include <stdlib.h>

int main( void )
{
  //---------------- //
  // Hardware config //
  //---------------- //
  
  WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
  
  // DCO configuration
  DCOCTL = CALDCO_1MHZ; //Set DCO to 1 MHz
  BCSCTL1 = CALBC1_1MHZ; // Calibrate internal clock for 1 MHz
  
  // Port 1 configuration
  P1DIR = 0x04;
  P1SEL |= BIT2;
  
//  P1DIR = 0x01;
//  P1SEL |= BIT0;
  
  // Timer A configuration
  TACTL =  TASSEL_2 + // Set clock to internal DCO
           ID_0 +     // No frequency divider
           MC_0;      // Stopped to begin with
  CCR0 = 1000-1;  // PWM Period (1 us)
  CCTL1 = OUTMOD_7; // CCR1 reset/set
  CCR1 = 500; // CCR1 PWM duty cycle
  
  //----------- //  
  // Main logic //
  //----------- //
  TACTL  |= MC_1;
  
  _BIS_SR(LPM0_bits);
}

Viewing all articles
Browse latest Browse all 2077

Trending Articles