打印
[牛人杂谈]

N76E003的输入捕获处理

[复制链接]
1366|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 | 只看该作者
捕获功能非常强大

使用特权

评论回复
5
zhuotuzi| | 2019-4-21 11:14 | 只看该作者
可以高精度测量信号

使用特权

评论回复
6
小明的同学| | 2019-4-23 15:39 | 只看该作者
主要要懂其中道理,还有什么是捕获

使用特权

评论回复
7
dongnanxibei| | 2019-4-24 20:19 | 只看该作者
两个寄存器?

使用特权

评论回复
8
downcount| | 2019-4-26 19:34 | 只看该作者
输入捕获还是比较好用的

使用特权

评论回复
9
zhuomuniao110| | 2019-4-28 11:06 | 只看该作者
非常有用的功能。

使用特权

评论回复
10
Coffey1001| | 2019-5-17 11:42 | 只看该作者
markforuseinfuture

使用特权

评论回复
11
zhuotuzi| | 2019-5-18 00:17 | 只看该作者
楼上真有才。

使用特权

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

本版积分规则

199

主题

3480

帖子

14

粉丝