请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR2633 大家好、
我使用 Timer1_A3在 P1.0上生成 PWM 信号。
由于 P1.0不是 PWM 输出引脚、我打开/关闭中断服务例程中的 LED。
系统在 PWM 计时器启动时挂起。
它是否与 Capt 计时器发生冲突?
void InitPWMTimer (void) { TA1CTL |=(TACLR); TA1CTL |=(TASSEL_SMCLK);// SMCLK=2M TA1CCR0 = 52; // 38KHz PWM 周期(2000000/38000)= 53 TA1CCTL0 |= CCIE; TA1CCTL0 &=~CCIFG; TA1CCR1 = 17; // 33%占空比(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; } } 否则(((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; }