一、EPIT简介
实现精准的定时功能
1、EPIT是一个32位的向下计数器,是最基本的定时器。
2、EPIT的时钟源有多种选择,在此选择ipg_clk = 66 mhz
3、可以对时钟源进行分频,12位的分频器,0 ~ 4095分别代表 1 ~ 4096分频
4、开启定时器后,计数寄存器会每个时钟减1,如果和比较寄存器里面的值相等的话,就会触发中断/事件。
EPIT有两种工作模式:
set-and-forget
free-running
5、6ull有两个EPIT定时器EPIT1、EPIT2
每个定时器有五个寄存器
EPIT_CR用于配置EPIT
二、实验原理简介
EPITx_CR:
bit0:使能EPIT,( 1,最后set )。
bit1为1,设置初始值为加载寄存器的值。
bit2,使能比较中断。
bit3为1,设置定时器的工作模式为set-and-forget模式下;为0时每次从 0xffff ffff开始加载。
bit15~4 设置分频值。
bit25-24,时钟源选择位,设置为01,选择ipg_clk时钟源。
EPITx_SR:
只有bit0有效,表示中断状态,写1清0。当OCIF为1的时候表示中断发生,为0表示中断未发生。我们处理完定时器中断以后需要清除中断标志位OCIF。
EPITx_LR:
设置计数器的加载值。计数器每次计时到0以后就会读取LR的值,重新开始计数。
EPITx_CMPR:
当计数器的值和CMPR相等以后,就会产生比较中断,必须要 GIC_Enable( 此中断号 )
EPITx_CNR:
保存计数器的当前值
本次实验利用EPIT实现500ms周期的定时器,在EPIT中断服务函数里面让LED灯亮灭。