[牛人杂谈] N76E003的输入捕获处理

[复制链接]
1567|10
 楼主| 734774645 发表于 2019-4-20 07:34 | 显示全部楼层 |阅读模式
N76E003的输入捕获功能还是挺强大的,具体的说明在这里就不多讲,配置的步骤如下:

      (1) 将要检测输入捕获的IO口配置成输入模式;

      (2) 选择信道输入CAP0/1/2,在官方的例程中使用TIMER2_CAP1_Capture_Mode等该宏定义进行进行配置,但是在这里一定要注意,进入这个宏定义,是对T2CON和T2MOD的配置,而T2MOD是对定时器2的时钟进行分频操作的寄存器,而该宏定义直接将高4位赋值为8,所以是不分频,因此,如果有对定时器2分频的操作,一定将分频语句放在这条语句之后,否则你的分频是无效的。也就是下面步骤(3)

      (3)设置分频(可选)


 楼主| 734774645 发表于 2019-4-20 07:34 | 显示全部楼层
4)然后是设置触发捕获的方式,支持双边沿,上升沿,下降沿,具体按照实际需求来

      (5) 设置CAPCR,这个是关键的步骤,设置这个之后在发生了捕获事件之后就会直接将定时器的值清0,重新开始计时,这样的好处是我们完全可以不去管它会溢出的情况了。

      (6)如果是中断的方式就开启中断设置中断标志位,编写中断服务函数等
 楼主| 734774645 发表于 2019-4-20 07:35 | 显示全部楼层
7)然后读取CxH,CxL中的数据(如 data=(C1H)<<4+C1L);

      如何验证捕获出来的数据是不是准确的呢?

     (1) 用示波器看你输入的波形,最好是固定频率的方波,假设配置的是双边沿触发的,那么就在示波器上测波形充上升沿到下降沿的时间是多少,然后与你程序中读出的 data*1/频率,例如,16M的时钟是62.5ns,就用data*62.5 的值与示波器上测量的值比较,看误差大小。

   (2)如果的项目中的波形是频率并不是固定的,那么你可以尝试使用PWM配置出固定频率的波形,送到这个IO口上,或者可以从示波器上的右下角的两个端口中将上面的端口中连接到你的这个输入端口中,示波器的这个端口提供的是一个固定的频率50%占空比的方波,具体的频率我也忘了。

 以上就是N76E003的输入捕获的一些知识。
zhuotuzi 发表于 2019-4-21 11:14 来自手机 | 显示全部楼层
捕获功能非常强大
zhuotuzi 发表于 2019-4-21 11:14 来自手机 | 显示全部楼层
可以高精度测量信号
小明的同学 发表于 2019-4-23 15:39 | 显示全部楼层
主要要懂其中道理,还有什么是捕获
dongnanxibei 发表于 2019-4-24 20:19 | 显示全部楼层
两个寄存器?
downcount 发表于 2019-4-26 19:34 | 显示全部楼层
输入捕获还是比较好用的
zhuomuniao110 发表于 2019-4-28 11:06 | 显示全部楼层
非常有用的功能。
Coffey1001 发表于 2019-5-17 11:42 | 显示全部楼层
markforuseinfuture
zhuotuzi 发表于 2019-5-18 00:17 | 显示全部楼层
楼上真有才。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

211

主题

3588

帖子

15

粉丝
快速回复 在线客服 返回列表 返回顶部