一 简介
GPT的全称是General Purpose Timer,它是一个32位的向上的定时器, GPT 定时器也可以跟一个值进行比较,当计数器值和这个值相等的话就发生比较事件,产生比较中断。GPT 定时器有一个 12 位的分频器,可以对 GPT 定时器的时钟源进行分频。 分析方式同EPTI
它具有以下特点:
1.一个可选时钟源的32位向上计数器。
2.两个输入捕获通道,可以设置触发方式。
3.三个输出比较通道,可以设置输出模式。
4.可以生成捕获中断、比较中断和溢出中断。
5.计数器可以运行在重新启动(restart)或(自由运行)free-run模式。
二 结构原理图
2.1 时钟源
五个时钟源,分别为:ipg_clk_24M、GPT_CLK(外部时钟)、ipg_clk=66MHz、ipg_clk_32k和ipg_clk_highfreq

2.2 内部结构

2.3 工作原理
通过设置定时器工作频率确定计数器加1耗时t,延时时间 D/t = N 确定计数器计数值,轮询读取计数器( GPTx_CNT )值为N即为延时 D.
比如选择ipg_clk =66MHz,然后时钟源通过一个12位的分频器,分频以后进入32位的GPT定时器内部。我们选择分频参数为66,那么进入GPT定时器的频率就是1MHz了。1MHz的周期是1us,也就是说GPT的计数器每加一,就是经过了1us,如果累计加了20个数,就是20us。所以我们可以通过读取GPT计数器中的数值累加的个数,就知道经过的时间了。比如我们现在要延时50us,那么我们进入到延时函数,读取到GPT计数器的当前计数为100,那么当GPT计数器中的值变成200的时候(200-100=100个数),我们就知道延时经过了100us。
2.3.1 GPT 定时器结构中各部分意义如下:
①、此部分为 GPT 定时器的时钟源,前面已经说过了,本章例程选择 ipg_clk 作为 GPT 定时器时钟源。
②、此部分为 12 位分频器,对时钟源进行分频处理,可设置 0~ 4095,分别对应 1~ 4096 分频。
③、经过分频的时钟源进入到 GPT 定时器内部 32 位计数器。
④和⑤、这两部分是 GPT 的两路输入捕获通道,本章不讲解 GPT 定时器的输入捕获。
⑥、此部分为输出比较寄存器,一共有三路输出比较,因此有三个输出比较寄存器,输出比较寄存器是 32 位的。
⑦、此部分位输出比较中断,三路输出比较中断,当计数器里面的值和输出比较寄存器里面的比较值相等就会触发输出比较中断。
&nb

本文详细介绍了GPT定时器的结构、工作原理和使用方法,包括其32位向上计数器、12位分频器、输入捕获和输出比较通道的功能。通过设置时钟源、分频值和工作模式,可以实现不同精度的延时和中断处理。文中还给出了配置GPT定时器进行延时控制LED的实验步骤和相关代码示例。
最低0.47元/天 解锁文章
3553

被折叠的 条评论
为什么被折叠?



