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.

[参考译文] MSP430G2755:CCR0如何具体控制 TimerA 的停止和启动?

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/565873/msp430g2755-how-specifically-does-ccr0-have-control-over-stopping-and-starting-the-timera

器件型号:MSP430G2755

SLAU144J、第358页、12.2.2节"启动计时器"、指出:
•当定时器模式为增/减时、定时器可以通过将0写入 TACCR0来停止。 然后、可通过向 TACCR0写入一个非零值来重新启动定时器。 在这种情况下、定时器开始从零开始向上递增。

这到底是怎么发生的?

什么是连杆?

图12-1. Timer_A 的结构图、第357页、不显示 CCR0和 TAR 控制之间的任何控制线。

我想看到一个方框图、其中显示了 CCR0如何实现这一点。

--------------
我知道 CCR0比 CCR1\CCR2 "更特殊"... 因为它在其他案文中暗示(没有明确说明原因):

12.2.3.1向上计数模式、第358页
•如果定时器周期必须不同于0FFFFh 计数、则使用增模式。 定时器重复递增计数至比较寄存器 TACCR0的值、该值定义周期、
这是有道理的,因为只有一个比较寄存器可以复位 TAR,否则会造成混乱。

12.2.3.5向上/向下计数模式
如果定时器周期必须不同于0FFFFh 计数、并且需要产生对称的脉冲、则使用增/减模式。 定时器重复递增计数比较寄存器 TACCR0的值、然后再递减到0

12.2.6定时器_A 中断
两个中断向量与16位 Timer_A 模块相关联:
•TACCR0 CCIFG 的 TACCR0中断向量
•所有其他 CCIFG 标志和 TAIFG 的 TAIV 中断向量

有几个类似的引用表明 CCR0 "更特殊"。

--------------
虽然这意味着 CCR0的"特殊性"、但实际上从未解释过。 正如我提到过的、我真的想看到一个方框图、其中显示了该链接\控制的工作原理以及它与其他 CCRx 的区别。

此致、
Jim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如图12-1所示为 CCR0和 TR 之间的特殊连接、如果您知道要查看的位置:比较器 x 的输出被称为 EQUx、EQU0信号进入"计数模式"框。

    CCR0有一个独立的中断向量与特殊的 EQU0处理无关、如果您不需要检查哪个 CCR 触发了中断处理程序、那么使用中断处理程序会很有用。 其他 CCR 不会获得单独的中断向量、因为这会导致向量过多。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您将其清除。

    最好是在图12-1中添加注释、如"EQU0 (来自 CCR0)"。

    对于具有专用矢量的 CCR0、正确的做法是它实际上(从技术上讲)与通过 TAR 的 CCR0的计数器停止/复位功能无关。 CCR0只是另一种"特殊"情况。 我想、如果用户实施单个计数器比较、这很方便、因为正如您提到的、矢量源不需要检查、CCR0无论如何都在控制计数器。 因此、它可以很好地协同工作。

    再次感谢、
    Jim