假设以下计时器设置....
TA1CCTL0 = CCIE;// CCR0中断被启用
TA1CCR0 = 10000;//设置计数值
TA1CTL = tassel_1 + MC_1 + TACLR;// ACLK、upmode、清除 TAR
* TAIE 未启用、因此 TAIFG 永远不会触发 ISR
*我们使用 CCIFG 触发 ISR
在给定上述设置的10、000次计数后、我知道 Timer1的 CCR0 ISR 矢量将运行。
查看技术手册中的图17-3、可以看到、正如 TAxR 更新为 CCR0 = 10、000时、CCIFG 标志似乎会发生。
但我的问题是、
如果触发 ISR、并且在 TAxR = CCR0时运行代码、那么如果我们更新 ISR 中的 CCR0值、会发生什么情况?
1) 1)将 ISR 中的 CCR0从10、000更改为50、000是否意味着仅在40、000个时钟边沿后、下一个 CCIFG 将触发?
*这是否取决于定时器时钟源和 MCLK 速度的差异?
2) 2)如果要将 ISR 中的计时器计数更新为不同的周期、最好:
-停止计时器
- 将 TACLR 设置为将 TAxR 计数值清零回"0"
-设置新的 CCR0值
-重新启动计时器
??
此致、
Darren