请帮忙检查AD采集以及频率采集程序有无错误[求助]

- UID
- 106342
- 性别
- 男
|
首先我不是很明白你的程序,汗~但你的信号是方波吗?输入捕捉只能用于上升下降沿。我想你的AD转换应该是正确的吧,只是频率识别不了,对吗?如果你的信号是正弦波之类的,那频率可不能这样计算!!
要想让别人弄明白,把条件和结果写清楚吧。 |
|
|
|
|
|

- UID
- 106342
- 性别
- 男
|
你说的是两件事情吧。一路在做AD转换,用的是+5V电源输入,结果是数据不是0xFDH;另一路是在做频率捕捉,用的是信号发生器100Hz方波,结果是捕捉不到。
我想1、如果是+5V电源(恒定值),那么你要检查你的硬件连接了,AD的参考电平接好没有。还有AD转换有些条件的,如连续转换、对应的引脚选择、分频1MHz左右等。
2、问题就是最基本的了。寄存器设置、中断函数的号,还有最基本的对应的定时器要不停的计数,根据计数值来计算频率。只要计数停止,那么也就不捕捉了!!我以前也犯过如此错误! |
|
|
|
|
|

- UID
- 106342
- 性别
- 男
|
|
|
|
|
|

- UID
- 106342
- 性别
- 男
|
才看清楚你的芯片型号,我先当成8位的了
在PDF中有这样一句。The minimum pulse width for the input capture input is greater than two bus clocks.
我想你的时钟频率可能慢于信号源。你先把信号源的频率调慢些试试,如50Hz。 |
|
|
|
|
|

- UID
- 106342
- 性别
- 男
|
仔细看了一下你的AD转换,你定义的是10BIT数据结果吧。那么+5V的结果应该不是FDH,应该是FE00左右(具体和你定义的数据类型相关)。
你定义的转换时钟是2M(可以),连续转换,
总之,你的程序用汇编写实在让人5,注释也没写清楚。你最好去抄个典型的用。 |
|
|
|
|
|

- UID
- 106342
- 性别
- 男
|
你不是分频24MHz/128=187.5Hz吗,怎么能满足呢?你的时钟周期5ms是怎么来的。另外脉冲宽度是10ms吗?应是5ms吧,不是指周期呀。
当然可以将分频系数减小试一下。
我上班N年了,,,
[此贴子已经被作者于2005-5-10 8:54:28编辑过] |
|
|
|
|
|