This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430I2021: multiple pwm outputs, one timer

Part Number: MSP430I2021

May have designed myself in a corner.  CCR0/1/2 are all available as outputs TA0.0/1/2 on pins P1.4/5/6, so i may have incorrectly assumed that meant you could use them (CCR0 specifically).  My hope is to get 3 pwm signals from one timer, all with the same frequency/period, but with unique duty cycles.  From reading the datasheet, it looks like I should be able to accomplish this with continuous mode at 250Hz (rollover at 0xFFFF), but i'm not seeming to have any luck.. I've read posts about clever use of ISR to accomplish multiple frequencies, but that's not what i'm trying to do.  Should I be able to do this?

//Start Timer
Timer_A_clearTimerInterrupt(TIMER_A0_BASE);
Timer_A_initContinuousModeParam initContinuousParam = {0};
initContinuousParam.clockSource = TIMER_A_CLOCKSOURCE_SMCLK;
initContinuousParam.clockSourceDivider = TIMER_A_CLOCKSOURCE_DIVIDER_1;
initContinuousParam.timerInterruptEnable_TAIE = TIMER_A_TAIE_INTERRUPT_DISABLE;
initContinuousParam.timerClear = TIMER_A_DO_CLEAR;
initContinuousParam.startTimer = false;
Timer_A_initContinuousMode(TIMER_A0_BASE, &initContinuousParam);
Timer_A_startCounter(TIMER_A0_BASE,
TIMER_A_CONTINUOUS_MODE
);

//Initialize compare registers to generate PWM1
Timer_A_initCompareModeParam initComp0Param = {0};
initComp0Param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_0;
initComp0Param.compareInterruptEnable =
TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;
initComp0Param.compareOutputMode = TIMER_A_OUTPUTMODE_SET_RESET;
initComp0Param.compareValue = DUTY0;
Timer_A_initCompareMode(TIMER_A0_BASE, &initComp0Param);

//Initialize compare registers to generate PWM2
Timer_A_initCompareModeParam initComp1Param = {0};
initComp1Param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_1;
initComp1Param.compareInterruptEnable =
TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;
initComp1Param.compareOutputMode = TIMER_A_OUTPUTMODE_SET_RESET;
initComp1Param.compareValue = DUTY1;
Timer_A_initCompareMode(TIMER_A0_BASE, &initComp1Param);

//Initialize compare registers to generate PWM3
Timer_A_initCompareModeParam initComp2Param = {0};
initComp2Param.compareRegister = TIMER_A_CAPTURECOMPARE_REGISTER_2;
initComp2Param.compareInterruptEnable =
TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE;
initComp2Param.compareOutputMode = TIMER_A_OUTPUTMODE_SET_RESET;
initComp2Param.compareValue = DUTY2;
Timer_A_initCompareMode(TIMER_A0_BASE, &initComp2Param);

Thanks,

Scott

**Attention** This is a public forum