打印

用过ADuC7020的大虾进来看下~

[复制链接]
1823|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhizuzhe|  楼主 | 2008-5-6 01:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
v写一段代码,来完成AD采样速率可控。
刚学,很菜,呵呵。
我的想法是通过定时器0的溢出来触发AD转换,但是跑起来采样率明显不对。代码如下:
定义定时器装载初值查找表:
uint SapRate[13]={50,84,209,419,836,2089,4178,8356,20890,41780,83560,208900,417800};
设置定时器0,等待AD中断采样结束:
{
T0LD = SapRate[12-OrderData][2]];
T0CON = 0xC0;

IRQEN = ADC_BIT;        //    Enable ADC IRQ
Point = 0 ;

while(Point < POINTNUM);

GP4DAT = 0x04040000;        //Sampling over , LED turn off

IRQCLR = ADC_BIT;
}
IRQ中断程序:
void IRQ_Handler() __irq                
{        
    SPoint[Point++]=(ushort)((ADCDAT >>16) & 0x0fff);
    return ;
}
实际运行的时候,T0LD=41780 和 T0LD=417800采样相同点数据的时间差不多,请问哪个地方有问题啊?

相关帖子

沙发
hotpower| | 2008-5-6 01:21 | 只看该作者

记得00搞过~~~

使用特权

评论回复
板凳
computer00| | 2008-5-6 01:40 | 只看该作者

芯片倒是用过,楼主这样的没玩过~~~~

使用特权

评论回复
地板
zhizuzhe|  楼主 | 2008-5-6 10:20 | 只看该作者

其实其他内部集成有AD的单片机也一样吧?

我不知道我这种利用定时器溢出来启动AD转换的方法对不对,
DATASHEET上是有写这种方法的。
但是实际跑出来采样率有错误,尤其是SapRate=8356,20890,41780或者83560,208900,417800,相差10倍但是采集相同的点数需要的时间却差不多,不得其解。。。

使用特权

评论回复
5
computer00| | 2008-5-6 20:37 | 只看该作者

估计还是你哪里设置错了....ADI似乎提供了一些例子,你可以

使用特权

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

本版积分规则

48

主题

214

帖子

1

粉丝