简单地说、我要尝试的是使用计时器来提供异步单次触发。 我已经阅读了十几次"家庭用户指南"相关章节。 通过实验、我成功使用了 TA0和 TB0 (向上计数模式)。 两者都生成所需的中断。 我还设法(使用 slac123i 中的测试代码)在连续模式下获得具有 TB 的 TB1中断(因此我了解 TBIV 代码结构)。 但我需要在向上计数模式下运行计时器、虽然 TA0和 TB0都运行正常、但在3天后、TA0和 TBX 顽固地拒绝中断。 此外、我未能找到以类似于 TB0的方式运行 TB1的任何代码示例。 在理想情况下、我可以将 TimerB 设置为向上计数模式、将值单独插入 TBCCR0和 TBCCR1、并获取 CCIFG 中断(定时器内部为0、TBIV 为1)。 我的坚持点是不清楚 TBR。 我不清楚哪些因素会影响 TBR 计数。 它是否自由运行? 然后 TBCCRx 写入会有某种隐藏的数学运算。 它是否设置为 TBCCRx 值? 这一点没有明确说明(至少对我来说)、但它会解释为什么每个外设模块只有一个(独立)计时器。
足够了。 我能否在 TimerB 模块中运行2个独立的单次触发定时器(通过将 TBCCRx 更改为零在 ISR 中停止)? 对为什么不这样做作出任何澄清都是有益的。 有关获取 TBCCR1 CCIFG 中断的任何想法也可能有所帮助。