正点原子Mini Linux—EPIT定时器与GPT定时器简单介绍

EPIT定时器与GPT定时器简单介绍

  • 一、EPIT定时器
    • 1、EPIT定时器简介
    • 2、EPIT定时器寄存器
  • 二、GPT定时器
    • 1、GPT定时器简介
    • 2、GPT定时器寄存器

cortex-A7拥有2个EPIT定时器和2个GPT定时器。

一、EPIT定时器

1、EPIT定时器简介

①、EPIT是一个32位的向下计数器。
②、EPIT的时钟源总共有3个可以选择,分别是ipg_clk、ipg_clk_32k和ipg_clk_highfreq。
正点原子Mini Linux—EPIT定时器与GPT定时器简单介绍_第1张图片
③、有一个12位的分频器,可以对定时器时钟源进行1~4096分频。
④、拥有比较寄存器EPIT_CMPR,当计数寄存器里面的值与比较寄存器中的相等时,就会触发中断。
⑤、EPIT有两种工作模式:set-and-forget和free-running模式(通过控制寄存器EPIT_CR的bit3 RLD设置)。
set-and-forget模式:该模式下EPIT计数寄存器的值从加载寄存器EPIT_LR中获取初值,不能直接向计数寄存器写入数据。当计数器计数到0时,从加载寄存器中重新加载数据。
free-running模式:此模式下计数寄存器不会从加载寄存器中获取数据,计数值会一直在0xFFFFFFFF和0之间。

2、EPIT定时器寄存器

①、控制寄存器EPIT_CR
  主要用来使能EPIT定时器、设置EPIT初始值、使能EPIT比较中断、选择EPIT模式、时钟源、分频值。

②、状态寄存器EPIT_SR
  EPIT输出比较中断标志位。

③、加载寄存器EPIT_LR
  用来设置加载值。

④、比较寄存器EPIT_CMPR
  用来设置比较值。

⑤、计数寄存器EPIT_CNR
  表示当前的计数值。

二、GPT定时器

1、GPT定时器简介

①、GPT定时器时32位向上寄存器。
②、GPT定时器有两路输入捕获和三路输出比较。
③、GPT定时器有一个12位分频器。
④、GPT时钟源可以选择
正点原子Mini Linux—EPIT定时器与GPT定时器简单介绍_第2张图片
⑤、GPT定时器有两种工作模式:Restart和Free-Run模式(通过控制寄存器GPT_CR的bit9 FRR设置)。
Restart模式:此模式下,当计数值和比较寄存器中的值相等的时候,计数值清零,重新开始向上计数(只有比较通道1才有此模式,比较通道2,3没有)。
Free-Run模式:此模式下,当比较事件发生后并不会复位寄存器,而是继续计数,直到计到0xFFFFFFFF,然后重新回到0x00000000。

2、GPT定时器寄存器

①、控制寄存器GPT_CR
  该寄存器可以用来使能GPT定时器、选择时钟源、工作模式、设置输入捕获条件,输出比较后输出引脚的电平。

②、分频寄存器GPT_PR
  分频寄存器,由于只用了ipg_clk作为时钟源,设置该寄存器bit[11:0]进行分配。

③、状态寄存器GPT_SR
  GPT定时器中断标志位,中断发生后相应位置1,需手动写1清除标志,从低到高依次为输出比较中断1-3,输入捕获中断1-2,溢出中断。

④、中断使能寄存器GPT_IR
  使能GPT定时器的中断,相应位与GPT_SR寄存器对应。
⑤、输出比较寄存器GPT_OCR1~3
  输出比较寄存器的值。

⑥、输入捕获寄存器GPT_ICR1~2
  只读寄存器,保存最近一次输入捕获通道的值。

⑦、计数寄存器GPT_CNT
  表示当前的计数值。

如果需要深入了解EPIT和GPT定时器可以分别参考《IMX6ULL参考手册》24,30章的内容。

你可能感兴趣的:(正点原子Mini Linux—EPIT定时器与GPT定时器简单介绍)