/*F28335的脉冲捕获模块–eCAP,通过捕获脉冲的上升沿与下降沿,来计算脉冲的宽度、占空比、频率。
F28335一共有6组eCAP模块,每个eCAP不止具有输入捕获功能,还具有PWM输出。
在150Mhz下,32位时基的时间分辨率为6.67ns
4组32位的时间标志寄存器,4组捕获时间序列,均可以产生中断。
软件配置一次捕获可以获取4个捕获时间。
在不用做CAP功能时,可配置成一个单通道输出的PWM,称作APWM。
CAP1、CAP2寄存器作为主要的周期和比较寄存器,CAP3、CAP4寄存器作为周期和比较寄存器的影子寄存器。
//-----------------------------------------------------------------------------------------------
先看看eCAP的寄存器:
TSCTR:时间标志寄存器,捕捉事件的时间标志
CTRPHS:计数相位控制寄存器,
CAP1:捕获寄存器1,在CAP模式中,加载捕获事件中的时间标志(TSCTR的值);在APWM下起到APRD作用,周期寄存器;
CAP2:捕获寄存器2,在CAP模式中,加载捕获事件中的时间标志(TSCTR的值);在APWM模式下起到ACMP的作用,比较寄存器;
CAP3:捕获寄存器3,在CAP模式中,加载捕获事件中的时间标志(TSCTR的值);在APWM下起到APRD的影子寄存器作用;
CAP4:捕获寄存器4,在CAP模式中,加载捕获事件中的时间标志(TSCTR的值);在APWM下起到ACMP的影子寄存器作用;
ECCTL1:eCAP控制寄存器1,主要控制输入信号分频系数(1-62分频)、CAPx的重置计数器,捕获极性(上升/下降)选择x=1,2,3,4
ECCTL2:eCAP控制寄存器2,主要控制在APWM下的输出极性、CAP与APWM模式选择、计数器的设置以及选择连续/单次模式。
ECEINT:eCAP中断使能寄存器。
ECFLG:eCAP的中断标志寄存器。
ECCLR:中断清除寄存器
ECFRC:强制中断寄存器
按照下列设置,当检测到脉冲第一个上升沿时,将TSCTR的值传递给CAP1,第一个下降沿,将TSCTR的值传递给CAP2,
第二个上升沿时,将TSCTR的值传递给CAP3,第二个下降沿时,将TSCTR的值传递给CAP4,并触发中断。
在中断结束后,清除TSCTR的数据,继续1->2->3->4->1的循环。
由于TSCTR计数是在系统主频下,进行计数;
可以得知,两个CAPx之间的差值*(1/SYSCLK)= 两次捕获的间隔时间;
*/