i.MX6ULL终结者GPT定时器延时原理及原理分析

本文深入探讨了i.MX6ULL芯片上的GPT定时器延时原理,阐述了如何利用1MHz时钟源和12位分频器实现微秒级别的延时,并详细介绍了设置GPT定时器的步骤,包括选择时钟源、设置分频参数、处理计数器溢出等情况。同时,分析了在延时函数中读取计数器值来实现精确延时的方法。
摘要由CSDN通过智能技术生成

1 GPT定时器延时原理

我们在上一章节介绍了GPT定时器的结构框架,首先时钟源我们可以从五路里面选取任意一路,在我们本例程中,我们选择的是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。

我们在前面介绍GPT计数器GPTx_CNT是个32位的寄存器,那么他表示的最大值是0xffffffff,换成10进制表示是4294967295,也是就是从0开始累加计数,到计数器溢出的时间是4294967295us,所以我们在延时函数中要考虑到溢出的处理。

下面我们来看下具体的操作流程:
1.首先是复位GPT1定时器
2.然后是设置GPT1定时器的时钟源,分频值等参数
3.然后设置输出最大比较数值
4.然后使能GPT1定时器
5.然后实现延时函数(通过读取GPT1定时器的计数器值,计数器值每增加1,就是延时了1us)。

2 原理分析

本例程用到的硬件资源包括LED,i.MX6 ULL内部的GPT1定时器,由于LED原理我们在前面例程中有分析过,这里就不再详细分析了。GPT1定时器属于i.MX6 ULL芯片内部的硬件模块。在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值