大家好、
我需要收集 15个脉冲信号的周期、并计算每个脉冲的上升沿数量。
我在430产品线中选择了5438A。

捕获结果刚好是15次。
以 timerA0为例、它可以捕获5个脉冲信号。
但是、CCR0有一个独立的中断、从 CCR1到 CCR4、它们共享一个中断信号。
timerA1的情况与之类似、CCR0具有独立中断、并且从 CCR1到 CCR2、它们共享中断信号。
timerB 也是如此、CCR0具有独立中断、并且从 CCR1到 CCR6、它们共享中断信号。
每个定时器的时钟通过 XT2高速时钟的频率分频(通过32分频)来获得。 目前、XT2配备了16MHz 晶体。
我要收集的信号的最小周期约为5ms。 测试过程中、我 同时将周期为5ms 的 PWM 波连接到15个捕捉输入引脚、并且没有让430进入低功耗模式。 这是我的测试结果。

可以看到、脉冲计数通道之间存在一些差异。
当然、我的测试有点极端。 一个5ms PWM 同时连接到15个捕捉输入引脚。 实际信号源边沿是顺序的。
问题1. 由于有一个常见的中断信号、并且三个定时器的中断优先级也不同、 是否会出现脉冲边沿丢失的情况?
问题2. 如果 XT2的主频率增加至24MHz、并且使用了高精度、低温漂有源晶体振荡器、 主时钟和子时钟都使用该24MHz 时钟、每个计时器的计数时钟通过子时钟的频分获得、脉冲边沿在检测期间丢失的情况是否会改善?
提高主频率的目的是缩短处理器中断函数的处理时间。 将当前晶体替换为有源晶体振荡器是为了提高时钟精度。
问题3. 数据通过串行端口进行传输。 如果 引入串行端口以发送中断、在检测期间丢失脉冲边沿的可能性是否会增加?
此致、
Katherine
