IMX6ULL之EPIT中断定时器实验说明一

一.  EPIT定时器实验介绍

I.MX6U 提供了多种硬件定时器,有些定时器功能非常强大。
本章我们从最基本的 EPIT 定时器开始,学习如何配 置 EPIT 定时器,使其按照给定的时间,周期性的产生定时器中断。在定时器中断里面我们可以做其它的处理,比如翻转 LED 灯。

EPIT定时器

EPIT定时器:Enhanced Periodic Interrupt Timer),即增强型周期中断定时器。它主要是完成周期性中断定时的。
EPIT 是一个 32 位定时器,在处理器几乎不用介入的情况下提供精准的定时中断,软件使 能以后 EPIT定时器 就会开始运行。

特点如下:

1.   EPIT是 32位的一个向下计数器。

开启定时器以后,计数寄存器会每个时钟减1,如果和比较寄存器里面的值相等的话就会触发中断。

2.  EPIT的时钟源可以选择。

EPIT 共有 3 个时钟源可选择,分别为 ipg_clkipg_clk_32k ipg_clk_highfreq

我们选择 ipg_clk=66MHz(由参考手册第24章框图可知)。

3.  12 位的分频值。

可以对时钟源进行分频,12位的分频器,0~4095分别代表1~4096分频

4. 当计数值和比较值相等的时候产生中断。

EPIT定时器两种工作模式:Set-add-forget模式与 free-runing模式。

Set-add-forget模式:在此模式下 EPIT 的计数器从加载寄存器 EPITx_LR 中获取初始值。

free-runing模式:当计数器计数到0以后会重新从0XFFFFFFFF开始计数,并不是从加载寄存器EPITx_LR 中获取数据。

IMX6ULL有两个 EPIT定时器,每个定时器有 5个寄存器。

二.   EPIT定时器原理

IMX6ULL有两个 EPIT定时器。每个定时器有五个寄存器。

EPIT_CR 寄存器(控制寄存器)

bit0:设置EPIT使能

bit1:设置计数器的初始值加载方式。

bit2:使能比较中断。

bit3:工作模式选择,Set-add-forget模式或者 free-runing模式。

我们选择 Set-add-forget模式。

bit4~bit15:设置分频值。

Bit25:24:设置时钟源的选择。

我们设置为1,那么EPIT的时钟源就为ipg_clock=66MHz

EPIT_SR寄存器:(状态寄存器)

bit0:表示中断状态,写1清零。

OCIF位为1时,表示中断发生,为0时表示中断未发生。

注意:在使用中断时,中断处理结束后,需要清除中断标志位!!!

EPIT_LR寄存器:设置计数器的加载值。

计数器每次计时到 0 以后,就会读取 LR寄存器的值,重新开始计时。在加载寄存器设置值后,则定时中断时间就定下来了。

CMPR比较计数器:当计数器的值和CMPR相等以后,就会产生比较中断。

CPIT_CNR寄存器:计数器

每一个时钟周期,它的值减一。

总结:

本文主要介绍 IMX6ULL的EPIT中断定时器的原理,以及几个寄存器使用。下一篇开始编写代码,使用 EPIT中断定时器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值