打印

各位高手请了,用TMR0计数器采集20khz-30khz的频率

[复制链接]
1246|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cnlgm|  楼主 | 2016-5-21 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位高手请了,用TMR0计数器采集20khz-30khz的频率,每变化1Khz输出一个结果,用if语句还是用swicth语句还是用do...swicth语句,采用何种算法更简洁有效?
f=count*256+TMR0
tmr0分频1:256,count:TMR0中断次数寄存器
沙发
兰天白云| | 2016-5-23 13:20 | 只看该作者
用分频不行,,if语句就可以

使用特权

评论回复
板凳
cnlgm|  楼主 | 2016-5-25 09:16 | 只看该作者
多谢兰天白云,如果不用分频器,TMR0溢出255+1脉冲,如何计数21Khz的脉冲?是不是计数TMR0溢出中断次数?

使用特权

评论回复
地板
兰天白云| | 2016-5-25 17:16 | 只看该作者
TMR0溢出有中断,一次中断计256个,从FF变00也算一个,你的计数时间用1秒还是0.5秒?假设用1秒,那数到21K个脉冲就是21KHz喽

使用特权

评论回复
5
cnlgm|  楼主 | 2016-5-28 07:32 | 只看该作者
多谢兰天白云!用1秒计时,如果不用分频器的话:f=count(中断次数)+TMR0(当前计数),用if、else if,多向分支语句进行判断。是这样吗。

使用特权

评论回复
6
cnlgm|  楼主 | 2016-5-28 07:50 | 只看该作者
刚才检测通过了,f=count*256+TMR0,多谢兰天白云。

使用特权

评论回复
7
Rain_King| | 2016-5-28 09:09 | 只看该作者
可以使用捕捉的嘛...当然你要说常扫描,然后用定时器计数,也是可以的..............

使用特权

评论回复
8
MOn51| | 2016-5-28 12:19 | 只看该作者
cnlgm 发表于 2016-5-28 07:50
刚才检测通过了,f=count*256+TMR0,多谢兰天白云。

这只是一个计算方法,它并不能测量出频率!关键是如何精确测频问题:可以用一个定时器定时100毫秒或者1秒。用另一个定时器记脉冲个数。频率高的话最好用带扑捉的片子。计算一次频率与上次比较大于1K就输出。

使用特权

评论回复
9
MOn51| | 2016-5-28 12:21 | 只看该作者
本帖最后由 MOn51 于 2016-5-28 12:22 编辑

PIC12F683 有门控功能,可以借助这个功能测量频率。程序简单,硬件更简单。只使用一个定时器。

使用特权

评论回复
10
cnlgm|  楼主 | 2016-6-13 16:17 | 只看该作者
多谢各位回复的朋友,好人一生平安。

使用特权

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

本版积分规则

24

主题

90

帖子

0

粉丝