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

[复制链接]
6028|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

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