N76E003的输⼊捕获处理
N76E003的输⼊捕获功能还是挺强⼤的,具体的说明在这⾥就不多讲,配置的步骤如下:
(1) 将要检测输⼊捕获的IO⼝配置成输⼊模式;
(2) 选择信道输⼊CAP0/1/2,在官⽅的例程中使⽤TIMER2_CAP1_Capture_Mode等该宏定义进⾏进⾏配置,但是在这⾥⼀定要
注意,进⼊这个宏定义,是对T2CON和T2MOD的配置,⽽T2MOD是对定时器2的时钟进⾏分频操作的寄存器,⽽该宏定义直接将⾼4位
赋值为8,所以是不分频,因此,如果有对定时器2分频的操作,⼀定将分频语句放在这条语句之后,否则你的分频是⽆效的。也就是下⾯步
骤(3)
(3)设置分频(可选)
(4)然后是设置触发捕获的⽅式,⽀持双边沿,上升沿,下降沿,具体按照实际需求来
(5) 设置CAPCR,这个是关键的步骤,设置这个之后在发⽣了捕获事件之后就会直接将定时器的值清0,重新开始计时,这样的好处
是我们完全可以不去管它会溢出的情况了。
(6)如果是中断的⽅式就开启中断设置中断标志位,编写中断服务函数等
(7)然后读取CxH,CxL中的数据(如 data=(C1H)<<4+C1L);
如何验证捕获出来的数据是不是准确的呢?
(1) ⽤⽰波器看你输⼊的波形,最好是固定频率的⽅波,假设配置的是双边沿触发的,那么就在⽰波器上测波形充上升沿到下降沿的时
间是多少,然后与你程序中读出的 data 1/频率,例如,16M的时钟是62.5ns,就⽤data62.5 的值与⽰波器上测量的值⽐较,看误差⼤
⼩。
(2)如果的项⽬中的波形是频率并不是固定的,那么你可以尝试使⽤PWM配置出固定频率的波形,送到这个IO⼝上,或者可以从⽰波
器上的右下⾓的两个端⼝中将上⾯的端⼝中连接到你的这个输⼊端⼝中,⽰波器的这个端⼝提供的是⼀个固定的频率50%占空⽐的⽅波,具
体的频率我也忘了。
以上就是N76E003的输⼊捕获的⼀些知识。