I.MX6U EPIT定时器浅析

引入:定时器是常用的外设,I.MX6U 提供了多种硬件定时器,有些定时器功能非常强大。而EPIT定时器比较简单,因此先挑软柿子捏。

EPIT简介

1.是一个32位定时器

2.12位分频

3.3种时钟源可以选择

4.递减计数

 

问题1:可选择的时钟源是哪几个?

 

1.高频参考时钟ipg_clk_highfreq

2.低频参考时钟ipg_clk_32k

3.外围时钟ipg_clk

时钟输入源由控制寄存器(EPIT_CR)中的CLKSRC字段确定

问题2:计数器重复装值如何确定?

 EPIT 定时器有两种工作模式:set-and-forget 和 free-running,这两个工作模式的区别如下:

set-and-forget  模式:

控制寄存器(EPIT_CR)中的RLD位置1。

在这种模式下,计数器从加载寄存器(EPIT_LR)获取其数据

当计数器为0时,自动加载。


free-running  模式:

控制寄存器(EPIT_CR)中的RLD位清零。

当计数器计数到0以后会重新从0XFFFFFFFF开始计数,

问题三:有哪些重要寄存器?

寄存器 EPITx_CR 我们用到的重要位如下:


CLKSRC(bit25:24):EPIT 时钟源选择位,为 0 的时候关闭时钟源,1 的时候选择选择Peripheral 时钟(ipg_clk),为 2 的时候选择 High-frequency 参考时钟(ipg_clk_highfreq),为 3 的时候选择 Low-frequency 参考时钟(ipg_clk_32k)。


PRESCALAR(bit15:4):EPIT 时钟源分频值,可设置范围 0~4095,分别对应 1~4096 分频。


RLD(bit3):EPIT 工作模式,为 0 的时候工作在 free-running 模式,为 1 的时候工作在 set-and-forget 模式。


OCIEN(bit2):比较中断使能位,为 0 的时候关闭比较中断,为 1 的时候使能比较中断,


ENMOD(bit1):设置计数器初始值,为 0 时计数器初始值等于上次关闭 EPIT 定时器以后
计数器里面的值,为 1 的时候来源于加载寄存器。


EN(bit0):EPIT 使能位,为 0 的时候关闭 EPIT,为 1 的时候使能 EPIT。

 

寄存器 EPITx_SR 只有一个位有效。

OCIF(bit0):这个位是比较中断标志位,为 0 的时候表示没有比较事件发生,为 1 的时候表示有比较事件发生。当比较中断发生以后需要手动清除此位,此位是写 1 清零的。

寄存器 EPITx_LR

EPIT加载寄存器(EPIT_LR)包含要加载到计数器中的值

寄存器 EPITx_CMPR

EPIT比较寄存器(EPIT_CMPR)保存的值决定了何时比较事件已生成。

寄存器 EPITx_CNR

395/5000

EPIT计数器寄存器(EPIT_CNR)包含当前计数值,可以读取在任何时候都不会打扰柜台。 这是一个只读寄存器,任何尝试
向其写入会产生传输错误。 但是,如果将EPIT_CR中的IOVW位置1,则该值可以通过对EPIT_LR的写操作来覆盖该寄存器的值。

总结:

如果要使用EPIT定时器需要以下步骤

1.选择时钟源

2.选择分频值

3.选择工作模式

4.设置计数器初始值来源

5.使能比较中断

6.设置加载值和比较值

7.使能定时器

8.编写中断服务函数

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值