打印
[牛人杂谈]

N76E003的输入捕获处理

[复制链接]
474|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinpian101|  楼主 | 2019-6-16 16:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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);



使用特权

评论回复
沙发
xinpian101|  楼主 | 2019-6-16 16:58 | 只看该作者
  如何验证捕获出来的数据是不是准确的呢?



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



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



以上就是N76E003的输入捕获的一些知识。

使用特权

评论回复
板凳
heisexingqisi| | 2019-6-16 19:23 | 只看该作者
51都可以捕获了,很厉害。

使用特权

评论回复
地板
小明的同学| | 2019-6-16 23:10 | 只看该作者
输入输出,捕获,都是检测用的

使用特权

评论回复
5
小灵通2018| | 2019-6-16 23:30 | 只看该作者
输入输出。

使用特权

评论回复
6
小明的同学| | 2019-6-17 09:17 | 只看该作者
这个单片机性价比真高。

使用特权

评论回复
7
yiyigirl2014| | 2019-6-17 09:18 | 只看该作者
多谢分享。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

113

主题

1467

帖子

1

粉丝