ZHDA037 January 2026 MSPM0G3507 , MSPM0G3519
MSPM0 可以使用一个计时器的两个捕获通道来捕获外部脉冲宽度。通过配置捕获操作,MSPM0 可以轻松捕获两个脉冲信号的边沿差。
通过以不同的方式配置捕获操作,可采用多种方法来捕获外部信号边沿差。以下是一个方法示例。
首先,确认双轮控制应用的系统要求,即需要捕获两个信号边沿之间的时间间隔。例如,M0 必须捕获同步信号 的下降沿和索引 的上升沿之间的时间差,如图 1-2 所示。
用户必须配置计时器的寄存器以控制两个输入信号边沿上的计时器操作。表 2-3 是必要的计时器配置和相关的寄存器说明。这里,CC0 输入被配置为索引 的输入捕获通道,CC1 输入被配置为同步信号 的输入捕获通道。计时器的计数器处于向下计数模式,并在同步信号 的上升沿重新加载。
| 配置 | 寄存器 | 说明 |
|---|---|---|
| Syscfg - 计时器计数模式 | CTRCTL.REPEAT | 启用重复模式以连续检测边沿差 |
| Syscfg - 计时器周期 | LOAD | 控制最大检测周期,如果色轮速度为 100Hz 且周期为 10ms,则将负载值设置为大于 12ms |
| Syscfg - CC0 捕获条件 | CCCTL_01.CCOND | 将 CC0 捕获条件设置为由 CC0 输入上升沿触发 |
| Syscfg - CC1 捕获条件 | CCCTL_01.CCOND | 将 CC1 捕获条件设置为由 CC1 输入下降沿触发 |
| CC1 负载条件 | CCCTL_01.LCOND | 将 CC1/计数器负载条件设置为由 CC1 输入上升沿触发 |
| 计数器负载控制 | CTRCTL.CLC |
启用边沿差捕获计时器后,M0 可以在 CC0 和 CC1 中断中读取 CC0 和 CC1 的值,CC0 和 CC1 之间的差值即为边沿差值。整个捕获过程基于计时器的捕获硬件,边沿差不会受到软件执行速度的影响。然后,将捕获的差值输入校准模块以运行控制算法。