中级会员
 
- 积分
- 215
- 威望
- 184
- 贡献
- 27
- 兑换币
- 6
- 注册时间
- 2008-12-16
- 在线时间
- 2 小时
|
1贡献
AD转换中判断转换是否完成,读ATD0STAT1_CCFx的值 或者读ATD0STAT0_SCF的值有什么不同么?有什么特别需要注意的地方?
这是我编的一段检测mcu能否采集到探测器的信号,最终只得到 case 8: PORTB=0xf0; 这个状况的灯亮。希望高手帮忙诊断一下,感激不尽!!
void main(void)
{ int max,AD_wData[10],i,m;
max=AD_wData[0];
DDRB=0XFF;
PORTB=0xff;
while(1)
{
ATD0CTL2=0XC2;
ATD0CTL3=0X38;
ATD0CTL4=0Xe3;
ATD0CTL5=0XB0;
ATD0DIEN=0X00;
ATD1CTL2=0XC2;
ATD1CTL3=0X18;
ATD1CTL4=0Xe3;
ATD1CTL5=0XB4;
ATD1DIEN=0X00;
while(ATD0STAT0_SCF==0);
AD_wData[0] = ATD0DR0L;
AD_wData[1] = ATD0DR1L;
AD_wData[2] = ATD0DR2L;
AD_wData[3] = ATD0DR3L;
AD_wData[4] = ATD0DR4L;
AD_wData[5] = ATD0DR5L;
AD_wData[6] = ATD0DR6L;
while(ATD1STAT0_SCF==0);
AD_wData[7] = ATD1DR6L;
AD_wData[8] = ATD1DR5L;
AD_wData[9] = ATD1DR4L;
for(i=0;i<10;i++)
{
if(AD_wData[i]>max)
max=AD_wData[i];
m=i;
}
switch(m)
{
case 0: PORTB=0xfe; break;
case 1: PORTB=0xfd; break;
case 2: PORTB=0xfb; break;
case 3: PORTB=0xf7; break;
case 4: PORTB=0xef; break;
case 5: PORTB=0xdf; break;
case 6: PORTB=0xbf; break;
case 7: PORTB=0x7f; break;
case 8: PORTB=0xf0; break;
case 9: PORTB=0x0f; break;
}
}
} |
最佳答案
查看完整内容
你出来的应该是case9吧
if(AD_wData>max)
max=AD_wData;
m=i;
是不是少加括号 了?
|