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.

[参考译文] MSP430F5419A:澄清了定时器 B 上溢和比较输出

Guru**** 2521660 points
Other Parts Discussed in Thread: MSP430F5419A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/933882/msp430f5419a-timer-b-overflow-and-compare-output-clarification

器件型号:MSP430F5419A

您好!

我们使用的 MSP430F5419A 定时器 B 在中断模式中具有硬件设置输出 TB0.2。  此外、定时器溢出中断被启用、时钟以12.8Mhz 运行。  如果您加载硬件引脚 TB0.2以在计时器达到小于20的计数时变为高电平、例如10、该引脚应变为高电平、并在计时器溢出中断后以10个时钟计数生成中断。  

当我读取中断矢量时、我希望看到计时器溢出标志、然后是引脚高电平中断。  当 TB0.2加载计数为10时、我在中断矢量中看到的是 TB0.2中断、而不是溢出中断。  当我加载计数为20的 TB0.2时、我首先看到溢出中断、然后看到 TB0.2中断如预期的那样、因此中断顺序被交换。

我知道当中断同时进入时、TBIV 被优先化、但是这2个中断的时钟计数有20多种不同。  "优先级"方案的这种正常行为是否正常?  如果是、为什么不一致?  有时、这些中断的顺序会切换、因此顺序不确定、这会导致问题。

谢谢、

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

    您没有提到计时器的计数速度(TBSSEL+ID)、但您应该允许20个 MCLK 之类的东西进入 ISR。 如果在这段时间内发生第二个事件、那么两个 IFG 都将被置位、正如您所说的、TBIV 优先级将接管。

    您可以通过不读取 TBIV 而直接检查 IFG 来在某种程度上缓解这种情况。 由于你"知道" TBIFG 发生在 TB0.2 CCIFG 之前、你可以先检查那个。 如果您不使用 TBIV、则需要显式清除 IFG。

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

    感谢您的澄清。 未应用分频器、因此定时器速率为12.8Mhz。