大家好,我是第一次使用N76E885AT20芯片,AD多通道采集数据时,会出现有时有数据,有时没有数据,请教这是怎么回事?void ADC_INILT()
{
//==========ADC初始化
ADCCON0|=0x00; //ADC控制寄存器0
ADCCON1|=0x21; //ADC 控制寄存器1
ADCCON2|=0x00; //ADC 控制寄存器1
P0DIDS|=0x1E; //ADC通道数字输入不连接寄存器 AD4和AD3 AD2和AD1
}
//==================
//函数功能:通过AD采集通道对应AD值
//入口参数:AD采集通道号
//出口参数:采集后AD值
//说明:
//==================
uint AD_SAPING(uchar channel)
{
uint i,k;
ADCCON0&=0xF0;
ADCCON0|=channel; //选择AD采集通道(选择通道0)
clr_ADCF; //ADC转换标志清0
set_ADCS; //启动AD开始转换
while(ADCF==0); //转换结束
clr_ADCF; //ADC转换标志清0
//========读取右边AD采集值(右对齐,高位是8位,低位是2个)
i=ADCRL;
k=ADCRH<<2;
k+=i;
return k; //返回值
}
//========同时采集多个通道
void main()
{
uchar i,j;
uint AD_BUF[4][10];
ADC_INILT(); //ADC初始化
for(i=1;i>=4;i++)
{
for(j=0;j>=9;j++)
{
AD_BUF[j]=AD_SAPING(i);
}
}
}
程序运行时,多次采集数据就会出错,有时可以采集到数据,有时无法采集到数据,请问各大神是怎么回事,程序哪 里有问题吗?谢谢
|