ZHDU116G January 2018 – June 2024 CC1312PSIP , CC1312R , CC1352P , CC1352R , CC2642R , CC2642R-Q1 , CC2652P , CC2652PSIP , CC2652R , CC2652RB , CC2652RSIP , CC2662R-Q1
对于上升沿检测,输入信号必须在上升沿之后的至少两个系统时钟周期内保持高电平。同样,对于下降沿检测,输入信号必须在下降沿之后的至少两个系统时钟周期内保持低电平。根据此标准,边沿检测的最大输入频率为系统频率的 ¼。
在边沿时间模式下,计时器配置为 24 位向下计数器,包括可选的预分频器。计时器值的高位存储在 GPT:TnPR 寄存器中,低位存储在 GPT:TnILR 寄存器中。在此模式下,计时器初始化为:向下计数时加载 GPT:TnILR 和 GPT:TnPR 寄存器中的值,向上计数时加载 0x0。计时器能够捕获三种类型的事件:上升沿、下降沿或两者兼有。通过设置 GPT:TnMR TnCM 寄存器位,可将计时器置于边沿时间模式,计时器捕获的事件类型由 GPT:CTL TnEVENT 寄存器字段决定。表 16-4 列出了计时器使能时加载到计时器寄存器中的值。
| 注册 | 向下计数模式 | 向上计数模式 |
|---|---|---|
| GPT:TnR | GPT:TnILR | 0x0 |
| GPT:TnV | GPT:TnILR | 0x0 |
| GPT:TnPV | GPT:TnPR | 0x0 |
当软件写入 GPT:CTL TnEN 寄存器位时,计时器被使能以进行事件捕获。检测到所选输入事件时,当前计时器计数器值将被捕获到 GPT:TnR 寄存器中,可供微控制器读取。然后,GPTM 会将 GPTM 原始中断状态寄存器 (GPT:RIS) CnERIS 位置为有效,并一直保持该位,直到通过写入 GPTM 中断清除寄存器 (GPT:ICR) 将其清除。如果在 GPTM 中断屏蔽寄存器 (GPT:IMR) 中使能了捕获模式事件中断,则 GPTM 还会设置 GPTM 屏蔽中断状态寄存器 (GPT:MIS) CnEMIS 位。在此模式下,GPT:TnR 寄存器保存所选输入事件发生的时间,而 GPT:TnV 和 GPT:TnPV 寄存器保存自由运行计时器值和自由运行预分频器值。可以读取这些寄存器来确定从中断置为有效到进入 ISR 之间经过的时间。
除了生成中断之外,还可以生成 μDMA 触发器。该触发器通过配置并使能相应的 μDMA 通道来启用。
捕获到事件后,计时器不会停止计数。计时器继续计数,直到 TnEN 位被清除。当计时器达到超时值时,在向上计数模式下会重新加载 0x0,在向下计数模式下会重新加载 GPT:TnILR 和 GPT:TnPR 寄存器中的值。
图 16-3 显示了输入边沿计时模式的工作原理。图中假设计时器的起始值为默认值 0xFFFF,并将计时器配置为捕获上升沿事件。
每次检测到上升沿事件时,当前计数值都会加载到 GPTIMER:TnR 寄存器中,并保持该值,直到检测到另一个上升沿(此时新的计数值被加载到 GPT:TnR 寄存器中)。
图 16-3 输入边沿时间模式示例在边沿时间模式下运行时,如果使能了预分频器,计数器使用模 224 计数,如果未使能预分频器,则使用模 216 计数。如果边沿发生的时间可能超过计数周期,则可以使用另一个计时器来确保检测到丢失的边沿。