搜索
bottom↓
回复: 3

马老师请教您书上输入捕捉功能测频的问题。。。。

[复制链接]

出0入0汤圆

发表于 2011-6-1 10:01:05 | 显示全部楼层 |阅读模式
马老师您好,我现在想把您书上用定时器1的输入捕捉功能测频的程序移植到M48上,ICC 7.22软件,外部8M晶振

有如下问题想请指点,我的想法是否正确:

1、因为我的是外部8M晶振(内部不分频),所以可以测得的外部方波频率为:125Hz----8KHz,8KHz----256KHz,计算如下

   晶振振动一下的时间:1/8M=0.125us

   125Hz 时间为:1/125=0.008s

   0.008s内计数的个数为:0.008s/0.125us=64000个<65535

   同理可得8KHz时计数器所计的个数:1/8K=0.125ms,0.125ms/0.125us=1000个<65535

   所以但周期时可测的频率为:125Hz----8KHz

   频率大于8KHz时采用测量64个周期:

   8KHz:64/8K=0.008s,0.008s/0.125us=64000个<65535

   256KHz:64/256K=0.00025s,0.00025s/0.125us=2000个<65535

   综上:可测的频率为:125Hz------256KHz

2、如果我换12M或更大的晶振的,是不是能测的频率就会跟高呢

   请马老师或高手指点

出0入0汤圆

发表于 2011-6-1 12:07:40 | 显示全部楼层
手上有我的书,我想学习的正确方法,不是懂一段代码,因为一段代码只是配合某种特定的情况下使用的。
关键是掌握方法和思路,学会自己根据实际情况,选择合适的方法。

你首先应该把实际的需要和指标定下来,然后才是考虑测试的方案和具体的参数等。

你实际需要测量频率的范围是多少?要求的精度是多少?

根据LZ位的帖子,好象范围是 125Hz-256KHz  ,那么精度呢?也就是测量误差(相对、绝对),后面的指标也是很重要的。比如测量125Hz频率,精度为+-5Hz与精度为+-0.1Hz,测量的方法就有区别的。

===============================================
下面讲一下基本的方法和思路。

首先测量频率采用的方法大的分成测频法和测周法。前者适合测量频率比较高的情况,后者适合测量频率底的情况。所谓的适合,就是说测量的精度好,测量更加正确和准确。

此外对于提高精度因素,应该从2个角度出发,定时器本身使用的计数脉冲和检测记录的脉冲个数。

定时器本身使用的计数脉冲也就是分辨率,这个计数脉冲的频率越高(周期越小),分辨率也越高,测量精度越好(不管是测频还是测周)。因此当系统时钟频率越高,就可以使用更高频率的计数时钟,进而提高测量的精度。定时器本身使用的计数脉冲周期,实际就是你测量精度的硬件决定的上限,这个是主要的。如果在这个基础上还要提高精度,就只能在软件方法上做文章了。

其实,检测记录的脉冲个数,就是软件上可以做文章的重要一点。数学上的理念就是多次测量取平均的方法。拿提到的捕捉测周法的例子分析:最基本的就是测量被测信号1个周期的长度(时间)
在我的例子中,频率低时采用测量被测信号1个周期的长度,频率高使采用测量被测信号64个周期的长度,这个就是取平均提高精度的。

我们用测量被测信号1个周期的长度为例,再看细节的分析:假定被测信号的频率不不变,下面2种方法,哪个精度好?

1。在被测信号1个周期中,T1计数值为20000个
2。提高T1计数频率1倍,那么同样在被测信号1个周期中,T1计数值就是40000个

那么哪个测量精度好?很明显,当然是第2种了。

此时LZ要说,使用第2种方法,被测频率下限就不能太低了,因为频率再低,T1超过65535溢出了。所以这个是矛盾,提高T1计数频率,提高了测量精度,但频率测量范围的下限上升了。因此你需要根据实际的情况进行选择的。

====================================================
LZ的计算,对于125hz没有问题。8K左右精度最低,因为只有1000个。建议在125Hz-256k之间分成4段,分段周期个数为1、32、64、128,具体频率分界点计算一下,能够使T1计数达到5000为好。


至于LZ的第2问题“如果我换12M或更大的晶振的,是不是能测的频率就会跟高呢”,解答如下:

1。换12M或更大的晶振,提高了测量精度,硬件的上限可以测量8M的频率,但你没有给出精度要求。
2。同样代码时,测量频率下限也提高了
3。对于高频率的测量,精度好的话,应该使用测频法。

所以要做一个频率计,测量频率范围大,精度要求比较高的话,应该:
1。使用最高的系统晶振,使用最高的计数时钟频率
2。分成2个大段,低段采用测周法,高段采用测频法,比如5Hz-250k,250k以上
3。在2个大段中,再分成几个小段,比如5hz-250k,采用捕捉,分成4段,分段周期个数为1、32、64、128

如果是对于小范围特定频率的测量,那就应该根据具体小的频率范围,专门考虑,使测量的精度达到最佳和平均

==========================================
没有那一种实际使用的频率测量的方法是万能的,都有一定的局限性。

出0入0汤圆

 楼主| 发表于 2011-6-1 12:43:29 | 显示全部楼层
回复【1楼】machao  
-----------------------------------------------------------------------

“你实际需要测量频率的范围是多少?要求的精度是多少? ”,我就做一个小小的频率计,范围是 125Hz-256KHz,精度+-1Hz就行


O(∩_∩)O谢谢马老师的指点,我继续改我的程序吧

出0入0汤圆

发表于 2011-7-14 10:32:00 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 08:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表