我要发布
仪器网/ 仪器社区/ 频率计/ 单片机频率计如何计算更精确?

单片机频率计如何计算更精确?

华为890    2011-04-13    频率计    浏览 533 次

待测频率范围在6K~60K。现在只取100ms,测量出来以后频率值跳动太大,有没有什么改进的地方,使频率值跳动在2个数以内,不跳Z好? 下面是我的代码: void T0T1_Init() { IE=0x88; //开总中断,定时器1中断允许 TMOD=0x15; //定时器1工作于定时方... 待测频率范围在6K~60K。现在只取100ms,测量出来以后频率值跳动太大,有没有什么改进的地方,使频率值跳动在2个数以内,不跳Z好?
下面是我的代码:
void T0T1_Init()
{
IE=0x88; //开总中断,定时器1中断允许
TMOD=0x15; //定时器1工作于定时方式,方式1,定时器0工作于计数方式,方式1
TH1=0xdc; //定时器1初值设置为定时10ms
TL1=0x00;
TH0=0x00; //定时器0从0开始计数
TL0=0x00;
TR0=1; //开定时器0,和定时器1
TR1=1;
}

void dsqzd() interrupt 3 using 1
{
TR1=0;
TH1=0xdc; //定时器1初值设置为定时10ms
TL1=0x00;
mm++;
if(mm==10)
{
mm=0;TR0=0;
value_buf[tt++]=TH0*256+TL0;
TH0=0x00;TL0=0x00;TR0=1;
}
if(tt==N){tt=0;}
TR1=1;
}

精彩问答
ljx123456aas 发布日期:2011-04-14
//定时器1工作于定时方式,方式1,定时器0工作于计数方式,方式1
方式1不太好,每触发一次中断,需要重新赋初值,有时间浪费,累积多了,就会有偏差,用方式2,8位自动重装方式较好。如果要求十分精确,Z好使用时钟芯片。
全部评论
抚摸269 发布日期:2011-04-14
100ms,测量一次,显示一次,显示数值跳动,是正常的。
可以把四次的数值,取平均值,每隔400ms,显示一次;这样,跳动的现象就会明显减小。
如果把八次的数值,取平均值,每隔800ms,显示一次;这时,显示的就会很稳定了,但是,也显得“迟钝”和“冷漠”多了。
每隔400ms,显示一次平均值,效果Z好。
颓废火焰 发布日期:2011-04-14
你把计频的步长直接设成1S,这样主便计算,计数的中断用定时器中断去触发,设一个缓存数组,测3个值或2个值取平均,这样,比较准而且波动很小,我测50K时就是这样测的.效果还可以.
6627359 发布日期:2011-04-14
这可能是51单片机的缺陷吧,一般到了50K的话测量真的不是很准的。看来只能多测试几次取平均值。60K的话,你延长测量的时间啊,设定的时间可以是0.5s。试试看
我想要个黑金 发布日期:2011-04-14
你的频率计的工作原理是什么,是用定时器吗,怎么测的,我觉得使用定时器的计数功能,搞一个上升(下降)沿计数就可以了
最新主题
相关版块
我要评论
X您尚未登录
账号登录
X您尚未登录
手机动态密码登录
X您尚未登录
扫码登录
官方微信

仪器网微信服务号

扫码获取最新信息


仪器网官方订阅号

扫码获取最新信息

在线客服

咨询客服

在线客服
工作日:  9:00-18:00
联系客服 企业专属客服
电话客服:  400-822-6768
工作日:  9:00-18:00
订阅商机

仪采招微信公众号

采购信息一键获取海量商机轻松掌控