悠悠小鱼 发表于 2012-6-1 11:56:35

怎样用AVR单片机实现等精度测频(新手入门,寻求帮助)

最近在用Atemega64做个测试晶振频率是否正常的装置,用等精度测频的方法,用到两个16位定时器,由于软件方法开启定时器会有误差,所以考虑用硬件开启,以前用爱普生的单片机,计数器引脚有个门控
信号,当检测到有高电平时硬件自动开启计数,这样比较精确,Atemega64定时器没有门控信号,寻求解决方法,由于刚接触AVR,还请高人指点,有没有别的可以替代的方法。


在测量过程中,有两个计数器分别对标准信号和被测信号同时计数。
首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。
然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。可以看出,实际闸门时间τ与预置闸门时间τ1并不严格相等,但差值不超过被测信号的一个周期
设在一次实际闸门时间τ中计数器对被测信号的计数值为Nx,对标准信号的计数值为Ns。
标准信号的频率为fs,则被测信号的频率为



之前用了一个D触发器,D接普通IO口,Q接其中一个16位定时器门控信号,触发器CLK接待测晶振频率输入,待测晶振频率同时接到单片机另外一个16位定时器上,
现在的问题是Atemega64定时器没有门控信号,寻求替代方法

ba_wang_mao 发表于 2012-6-1 13:50:47

用AVR自带的ICP捕获方式

悠悠小鱼 发表于 2012-6-1 14:03:43

没有用过啊,精确度怎样啊,我要测的晶振是32.768KHZ,误差不能超过0.8HZ,用输入捕获可以实现吗

Blue_oldman 发表于 2012-6-5 17:44:04

悠悠小鱼 发表于 2012-6-1 14:03 static/image/common/back.gif
没有用过啊,精确度怎样啊,我要测的晶振是32.768KHZ,误差不能超过0.8HZ,用输入捕获可以实现吗 ...

可以,用16位的计数器,中断时间尽量取小。
页: [1]
查看完整版本: 怎样用AVR单片机实现等精度测频(新手入门,寻求帮助)