12.GPT定时器

一、GPT定时器

​ 以前的延时,通过空指令进行延时,不准确。当修改时钟频率后,才用延时就会有很大的变动。而6ULL的GPT是一个高精度定时器装置。

​ GPT是一个32bit的向上计数器,有两个输入捕获通道,三个输出比较通道。有一个12分频器。

​ GPT有两种模式restart和free-run模式。restart模式:定时器的值与寄存器的某个值比较相等就会重新开始计时。它是捕获专有的。free-run模式适用于比较输出的模式。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTg8Ls3X-1590056515494)(\图片\17_GPT.png)]

二、寄存器

​ CR寄存:

bit[0]:模块使能

bit[1]:当模块不使能时是否保存上次的值

bit[8-6]:时钟源选择

bit[9]:运行模式选择

bit[19-18]:输入捕获上升沿、下降沿或者双边沿

bit[28-26]:输出比较通道

​ PR寄存器:分频设置

​ SR寄存器:

bit[5]:产生溢出

bit[4-3]:输入捕获中断

bit[2-0]:输出比较中断

​ IR寄存器:中断使能

​ OCR,ICR:输出比较寄存器,输入捕获寄存器。

​ CNT寄存器:读计数器值寄存器

三、GPT的定时器使用

​ 1.GPT进行软件复位。

​ 2.配置GPT时钟源,进行时钟分频,设置定时时间。

​ 3.设置输出比较模式中断使能

​ 4.GPT中断设置,并使能模块。

四、精准定时器的编程

void Delay_Iinit(void)
{
   
    GPT1->CR = 0;

    GPT1->CR = 1<<15;
    while((GPT1->CR >>15) & 0x1);
    
    GPT1->CR |= (1<<1) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值