打印

测频率都有哪些方法呀?

[复制链接]
2265|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
myic200610|  楼主 | 2009-3-29 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
jiyiche| | 2009-3-29 22:17 | 只看该作者

改成测频法不就可以了?

用一个定时器定时,产生标准时间,一个计数器计数,计数该标准时间脉冲的跳变。这样可以吧?

使用特权

评论回复
板凳
myic200610|  楼主 | 2009-3-29 22:40 | 只看该作者

RE 2nd floor:

显示的要求是:

需要显示小数点后一位,且每变化超过0.2Hz刷新。

请问:测频法可以吗?

使用特权

评论回复
地板
computer00| | 2009-3-29 23:04 | 只看该作者

定时器可以用一个变量扩展的啊。

使用特权

评论回复
5
python_k| | 2009-3-30 10:16 | 只看该作者

测频法可实现

使用特权

评论回复
6
myic200610|  楼主 | 2009-3-30 21:49 | 只看该作者

RE

谢谢大家的指点!

并请问compter00 老师:定时器咋样用一个变量扩展呀?

其实,我也试过了,测频法是可以实现的,但是在测量1-50Hz的频率时,测频法很慢的!比如,1Hz时,最小的测量单位也要大于1s,再加上软件处理,最少也要5s以上!

使用特权

评论回复
7
zwjgg| | 2009-3-31 17:09 | 只看该作者

你说你的频率低至0.2Hz了,还想快?

信号本来就慢,能快到哪里去,一个周期都不到你怎么测量呢,难道一个周期还没有出来你就知道后面的?岂不成预测了?

低频测周,高频计数测频,这样的精度要高些。

在你这里已经无所谓高低频了,

使用特权

评论回复
8
zwjgg| | 2009-3-31 17:15 | 只看该作者

c

void mea_freq(void)interrupt 0 using 0
{FLAG=1;
P0=0;
TCON=0X05;
TMOD=0X51;
TH0=0X3C;TL0=0XB0;
TH1=0; TL1=0;
TCON=0X55;
return;
}

void mea_cycle(void)interrupt 2 using 0
{FLAG=0;
P0=0;
TCON=0X05;
TMOD=0X61;
TH0=0; TL0=0;
TH1=251; TL1=251;
TR1=1;
while(252-TL1);
TR0=1;
return;
}

使用特权

评论回复
9
xwj| | 2009-3-31 17:16 | 只看该作者

LZ 理解错误,LS也理解错误

使用特权

评论回复
10
zwjgg| | 2009-3-31 17:20 | 只看该作者

糊涂了,

低频达0.5Hz,甚至更低;
高频达450KHz(在不分频的情况下);
输入低至50mV信号时,仪器能正常工作;
在十分频下工作正常;
百分频下高频可达12MHz;
--------------

信号输入——(信号放大)(有需要的话)——整形——(分频)——计数或计时(中断控制)——显示

使用特权

评论回复
11
myic200610|  楼主 | 2009-3-31 22:31 | 只看该作者

RE

谢谢大家的指点!让本人受益非浅!

综合大家的意思及我从这个任务中得到的经验,现做如下说明:

在我的工作任务中,要显示的频率为工频50Hz,还是用测周法好些,因为测周法反应快、精度高,显示范围只要在16-100Hz就可以了。测频法可以处理0-16Hz范围内的测量,但是反应速度慢、误差大,在我的这个任务中就不适用了。

测周法和测频法的程序我都已经写出来了,比较了一下,最后决定在我的这个任务中还是用测周法更好些!

使用特权

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

本版积分规则

536

主题

2587

帖子

4

粉丝