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.

MSP430FR2633: system no response when start PWM timer

Part Number: MSP430FR2633

Hi Team,

I use Timer1_A3 to generate PWM signal on P1.0.

Because P1.0 is not PWM output pin, I turn on/off LED in interrupt service routine.

The system hang on PWM timer start.

Does it conflict with CAPT timer?

void InitPWMTimer(void)
{
    TA1CTL |= (TACLR);
    TA1CTL |= (TASSEL__SMCLK); // SMCLK=2M

    TA1CCR0 = 52;       // 38KHz PWM period (2000000 / 38000) = 53
    TA1CCTL0 |= CCIE;
    TA1CCTL0 &= ~CCIFG;

    TA1CCR1 = 17;       // 33% duty (2000000 / 38000 / 3) = 18
    TA1CCTL1 |= CCIE;
    TA1CCTL1 &= ~CCIFG;
}

void KeypadTouchCallback(tSensor *pSensor)
{
    if ((pSensor->bSensorTouch == true) && (pSensor->bSensorPrevTouch == false))
    {
        if (keypadSensor_E00.bTouch == true)
        {
            TA1CTL |= MC__UP;
        }
    }
    else if ((pSensor->bSensorTouch == false)
            && (pSensor->bSensorPrevTouch == true))
    {
        TA1CTL &= ~MC__UP;
    }
}

void main(void)
{
    WDTCTL = WDTPW | WDTHOLD;
    BSP_configureMCU();
    InitPWMTimer();
    __bis_SR_register(GIE);

    CAPT_appStart();
    CAPT_registerCallback(&keypadSensor, &KeypadTouchCallback);

    while (1)
    {
        if (CAPT_appHandler() == true)
        {

        }
        CAPT_appSleep();
    }
}

#pragma vector = TIMER1_A0_VECTOR
__interrupt void ISR_PWMPeriod(void)
{
    P1OUT |= BIT7;
    TA0CCTL0 &= ~CCIFG;
}

#pragma vector = TIMER1_A1_VECTOR
__interrupt void ISR_PWMDuty(void)
{
    P1OUT &= ~BIT7;
    TA0CCTL1 &= ~CCIFG;
}

**Attention** This is a public forum