打印

单片机的PCA捕获计数器测频率一直累加下去吗?

[复制链接]
5055|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
firemoon915|  楼主 | 2011-10-21 15:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在用STC单片机的PCA捕获功能测频率,设置上升沿中断,上升沿到来后,硬件将计数器CH,CL的值存入CCAP0H和CCAP0L中,待下一次上升沿到来时用后一次的计数值减去前一次的计数值得到待测信号的周期。那么PCA计数器是一直在累加下去吗,开了之后就不关了,那变量的范围得取多大啊。如果把计数器的CH和CL清0,重头计数的话,就会抹掉计数器的当前值,那么计数值就会产生误差,测得的周期就不准确。只有让计数器一直在计数,上升沿一来就取计数值,这样计算得到的周期才是最准确的。各位高手,你们是怎么解决这个问题的?

相关帖子

沙发
coody| | 2011-10-21 21:15 | 只看该作者
让计数器一直在计数,清玩别清,清了就有误差。
拿当前的时间减上次的时间就可以测到周期了。

LastTime是全局变量。

unsigned int i;
i = LastTime;   暂存上一个时间。
LastTime = CCAP0H;
LastTime = (LastTime << 8) + CCAP0L;
i = LastTime - i;   //这个就是周期时间

使用特权

评论回复
板凳
16777216| | 2013-5-20 14:25 | 只看该作者
这个问题你解决了么 我很疑问当频率过低会怎么样

使用特权

评论回复
地板
dj狂人| | 2014-5-21 17:57 | 只看该作者
想问下LZ用PCA捕获能测到多少Hz的频率

使用特权

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

本版积分规则

0

主题

12

帖子

1

粉丝