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.

[参考译文] CCS/MSP430FR5969:PWM中断打开计时器

Guru**** 2608385 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/654866/ccs-msp430fr5969-pwm-interrupt-on-timer

部件号:MSP430FR5969

工具/软件:Code Composer Studio

您好,

在PWM模式下,我在TA0上抛出中断时遇到一些问题。

每次重置CCTL1/2时,我都需要切换引脚。 我尝试过CCIE,但没有调用ISR。

TA0CCR0 = 1000-1; // PWM周期
TA0CCTL1 = OUTMOD_7 + CCIE; // CCR1重置/设置
TA0CCR1 = 750; // CCR1 PWM占空比
TA0CCTL2 = OUTMOD_7 + CCIE; // CCR2重置/设置
TA0CCR2 =250; // CCR2 PWM占空比
TA0CTL = tassel__SMCLK | MC__UP | TCLR;// SMCLK,UP模式,清除TAR

__bis_sr_register (LPM0_bits); //输入LPM0
__no_operation(); //用于调试器

}
#pragma vector = TIMER0_A0_Vector
__interrupt void Timer0_A0_ISR (void)
{
P4OUT ^= BIT3;
TA0CCTL1&=~CCIFG;
} 


欢迎提出任何建议。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Robert:

    TA0有两种不同的中断,Timer_A0_Vector服务TA0CCR0.CCIFG,而TIMER0_A1_Vector使用TA0CCRx.CCIFG和TA0CTL.TAIFG。 数据表的表6-4对此进行了说明。

    此致,
    Ryan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Ryan:

    感谢您的回复。 我没有考虑TA0CCRx.CCIFG的TIME_AX_Vector差异。  

    最初我的方法是使用TAxCCTLx OUTMOD_7 PxSEL0实现PWM。 但我尚未将相应的计时器引脚路由到我的最终应用程序。

    就我而言,这些是硬件中断,我无法轻松调用软件中断-我猜是由于从呼叫到ISR处理的CLK周期的速度损失/延迟。

    我已通过使用TAxIV Vector和交换器案例语句来解决此问题,如第一个回复中所述: