智能车制作
标题:
神奇xs128的ATD模块总有你不了解的
[打印本页]
作者:
djy
时间:
2013-8-12 09:15
标题:
神奇xs128的ATD模块总有你不了解的
本帖最后由 djy 于 2013-8-12 09:18 编辑
我是做电磁的给大家看一下我的AD模块初始化void ATD_INIT(void)
{
ATD0DIEN=0X00;
ATD0CTL1=0X40;//12位精度 不放电
ATD0CTL2=0X40;//affc=1;
ATD0CTL3=0XB0;//no fifo
ATD0CTL4=0X44;
ATD0CTL5=0X30;//多通道连续扫描
}
下面这段是我的采集函数
void GetATD(void) //AD获取函数
{ int j=0; //模式1直接收集4个电感的值不经处理
for(j=0;j<10;j++)
{
while(ATD0STAT0_SCF!=1); //转换完成
dg1[0][j]=ATD0DR0;
dg1[1][j]=ATD0DR1;
dg1[2][j]=ATD0DR2;
dg1[3][j]=ATD0DR3;
dg1[4][j]=ATD0DR4;
dianya=ATD0DR5;
//while(ATD0STAT0_SCF!=0); //防止连续读取同一组数值 为什么加上这局程序会死?????
}
}
1)为什么我加
//while(ATD0STAT0_SCF!=0);
这句程序运行的时候会死啊????郁闷;
2)还有求解如果不加
while(ATD0STAT0_SCF!=0);
这样采集10次电感的值,会不会出现某几次采集的值是同样的(即ATD0DRx的值没有刷新就直接进行下一次的读取)?
3)等这个问题解决了我还有几个关于AD模块的经典问题!相信这些问题弄懂了AD模块就没什么大问题了!大家帮帮忙啊!
作者:
rubick
时间:
2013-8-12 10:40
你要注意了,ATD转换模块只有一个,虽然有多个通道,但是每个通道是公用一个转换模块的。
各个通道轮流把信号传入ATD。
牢记这一点,就应该很容易找出问题所在。
作者:
戥家三少
时间:
2013-12-25 22:44
本帖最后由 戥家三少 于 2013-12-25 22:56 编辑
rubick 发表于 2013-8-12 10:40
你要注意了,ATD转换模块只有一个,虽然有多个通道,但是每个通道是公用一个转换模块的。
各个通道轮流把信 ...
大神,请教一下,是每个通道对应各自的ATD转换结果寄存器还是能设置??这里真心不懂
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2