ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
单次触发模式或周期模式的选择由写入 GPTM 计时器 n 模式寄存器 (GPT:TnMR) TnMR 字段的值决定。计时器配置为使用 GPT:TnMR TnCDIR 位向上或向下计数。
当软件设置 GPTM 控制寄存器 (GPTIMER:CTL) TnEN 位时,计时器从 0x0 开始向上计数,或从其预加载值开始向下计数。或者,如果在设置 TnEN 位时设置了 GPT:TnMR 寄存器 TnWOT 位,计时器会等待触发器才开始计数(请参阅节 16.3.2.5)。
当计时器向下计数并达到超时事件 (0x0) 时,计时器在下一个周期从 GPT:TnILR 和 GPT:TnPR 寄存器重新加载其起始值。当计时器向上计数并达到超时事件(GPT:TnILR 和可选的 GPT:TnPR 寄存器中的值)时,计时器会重新加载 0x0。如果配置为单次触发计时器,则计时器停止计数并清除 GPT:CTL TnEN 寄存器位。如果配置为周期计时器,则计时器会在下一个周期再次开始计数。在周期性快照模式下(TnMR 字段为 0x2,并且设置了 GPT:TnMR TnSNAPS 寄存器位),发生超时事件时计时器的实际自由运行值将加载到 GPT:TnR 寄存器中。通过这种方式,软件可以检查快照值和自由运行计时器的当前值(存储在 GPT:TnV 寄存器中),以确定从中断置为有效到进入 ISR 所经过的时间。当计时器配置为单次触发模式时,快照模式不可用。
除了重新加载计数值之外,GPTM 还会在达到超时事件时生成中断和触发器。GPTM 设置 GPTM 原始中断状态寄存器 (GPT:RIS) TnTORIS 位,并一直保持该位,直到通过写入 GPTM 中断清除寄存器 (GPT:ICR) 将其清除。如果在 GPTM 中断屏蔽寄存器 (GPT:IMR) 中使能了超时中断,则 GPTM 还会设置 GPTM 屏蔽中断状态寄存器 (GPT:MIS) TnTOMIS 位。通过设置 GPT:TnMR TnMIE 寄存器位,当计时器值等于加载到 GPTM 计时器 n 匹配寄存器 (GPT:TnMATCHR) 和 GPTM 计时器 n 预分频匹配寄存器 (GPT:TnPMR) 中的值时,也可以生成中断条件。该中断具有与超时中断相同的状态、屏蔽和清除功能,但使用匹配中断位(例如,通过 GPTM 原始中断状态寄存器 (GPT:RIS) TnMRIS 位来监控原始中断状态)。硬件不会更新中断状态位,除非设置了 GPT:TnMR TnMIE 寄存器位,这与超时中断的行为不同。
如果软件在计数器向下计数时更新 GPT:TnILR 或 GPT:TnPR 寄存器,则在 GPT:TnMR TnILD 寄存器位清零时,计数器会在下一个时钟周期加载新值,并从新值开始继续计数。在设置了 TnILD 位时,计数器将在下一次超时后加载新值。如果软件在计数器向上计数时更新 GPT:TnILR 寄存器或 GPT:TnPR 寄存器,则超时事件将在下一个周期更改为新值。如果软件在计数器向上或向下计数时更新 GPTM 计时器 n 值寄存器 (GPT:TnV),则计数器会在下一个时钟周期加载新值,并从新值开始继续计数。如果软件在计数器计数时更新 GPT:TnMATCHR 寄存器或 GPT:TnPMR 寄存器,则在 GPT:TnMR TnMRSU 寄存器位清零时,匹配寄存器会在下一个时钟周期反映新值。在设置了 TnMRSU 位时,新值直到下一次超时才会生效。
如果设置了 GPT:CTL TnSTALL 寄存器位,则计时器会在调试器暂停处理器时冻结计数。当处理器恢复执行时,计时器恢复计数。
表 16-2 列出了使用预分频器时 16 位自由运行计时器的各种配置。所有值均假设时钟为 24MHz,Tc = 41.67ns(时钟周期)。预分频器只能在 16 位或 32 位计时器配置为 16 位模式时使用。
| 预分频值(8 位) | 计时器时钟数 (Tc)(1) | 最长时间 | 单位 |
|---|---|---|---|
| 00000000 | 1 | 2.7 | ms |
| 00000001 | 2 | 5.4 | ms |
| 00000010 | 3 | 8.1 | ms |
| – | – | – | – |
| 11111101 | 254 | 685.8 | ms |
| 11111110 | 255 | 688.5 | ms |
| 11111111 | 256 | 691.2 | ms |