常驻嘉宾
- 积分
- 3787
- 威望
- 1857
- 贡献
- 918
- 兑换币
- 704
- 注册时间
- 2012-3-12
- 在线时间
- 506 小时
|
下面是我的一段AD多通道采集代码,调用AD_get_more()的时候就会在while里面了,这是为什么?转换没完成吗?
不太理解啊
/*************************************************************/
/* 初始化AD模块(多通道转换) */
/*************************************************************/
void Init_AD_more(void)
{
ATD0DIEN = 0X00; // 禁止数字输入
ATD0CTL1_SRES = 2; //选用12位模数转换
ATD0CTL2 = 0X40; //启动A/D转换,快速清零,禁止中断
delay_atd(); //延时
ATD0CTL3=0Xa0; //10100000 转换序列长度为4 右对齐
ATD0CTL4 = 0x07; //AD模块时钟频率为2MHz fA=fBUS/(PRS+1)/2
ATD0CTL5=0X30; //多通道,连续转换,起始通道AD0 AD1,AD2,AD3,
}
void AD_get_more(void)
{
while(!ATD0STAT2_CCF0);
{
PORTA_PA0=1; ad_value[0]=ATD0DR0;
}
while(!ATD0STAT2_CCF1);
{
PORTA_PA1=1; ad_value[1]=ATD0DR1;
}
while(!ATD0STAT2_CCF2);
{
PORTA_PA2=1;
ad_value[2]=ATD0DR2;
}
while(!ATD0STAT2_CCF3);
{
PORTA_PA3=1; ad_value[3]=ATD0DR3;
}
}
|
|