中级会员
- 积分
- 435
- 威望
- 203
- 贡献
- 120
- 兑换币
- 123
- 注册时间
- 2013-4-5
- 在线时间
- 56 小时
- 毕业学校
- 湖南师大
|
你好,我想请问一下你的AD是怎么处理的,我现在AD0能正常输出,但是AD1,AD2,AD3就不能正常转换了
程序是:
void AD_Init(void)
{
ATD0CTL1=0x40;//4F //7:1‐外部触发,65:10‐12位精度,4:不放电,3210:ch
ATD0CTL2=0x40; //禁止外部触发, 中断禁止,自动清除标志位
ATD0CTL3=0xa0; //a0 //右对齐无符号,每次转换4个序列, No FIFO, Freeze模式下继续转
ATD0CTL4=0x02; //04 //765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]
ATD0CTL5=0x30; //6:0特殊通道禁止,5:1 连续转换 ,4:1多通道轮流采样
ATD0DIEN=0x00; //禁止数字输入
}
//********************读取AD转换的结果****************************
int AD_Measure12(int Channel )
{
int ad=0;
switch(Channel)
{
case 0:
while(!ATD0STAT2_CCF0);
ad= ATD0DR0;
break;
case 1:
while(!ATD0STAT2_CCF1);
ad= ATD0DR1;
break;
case 2:
while(!ATD0STAT2_CCF2);
ad= ATD0DR2;
break;
case 3:
while(!ATD0STAT2_CCF3);
ad= ATD0DR3;
break;
}
return ad;
}
|
|