我的电路用的是片外的AD7864,现在调试的时候出现问题了,AD7864的EOC引脚总是高电平,也就是说数据转换结束标志不清0,导致数据读不出来,请教会哪些原因呢?我重新焊了下AD,还是不行,这片AD挂在片外存储区0,我在cmd文件中申明了zone0区。zone0: orgin:0x004000,length:0x1000
求大侠们指导下还会在哪些地方出现问题呢?
我的程序如下:
#define ADCON GpioDataRegs.GPBSET.bit.GPIO59=1
#define ADCOFF GpioDataRegs.GPBCLEAR.bit.GPIO59=1
#define EOC GpioDataRegs.GPBDAT.bit.GPIO61
#define BUSY GpioDataRegs.GPBDAT.bit.GPIO60
#define AD_ADDR 0x004000 //ad数据存储地址
while(1)
{
ADCON;
ADCOFF; //reset convst
// delay(10);
ADCON; //启动转换
while(EOC!=0);//等待第1通道转换结束
AD_DATA[0]= *((unsigned volatile char *)AD_ADDR);
AD_DATA[0]&=0x0fff;
while(EOC==0);
while(EOC!=0);//等待第2通道转换结束
AD_DATA[1]= *((unsigned volatile char *)AD_ADDR);
AD_DATA[1]&=0x0fff;
while(EOC==0);
while(EOC!=0);//等待第3通道转换结束
AD_DATA[2]= *((unsigned volatile char *)AD_ADDR);
AD_DATA[2]&=0x0fff;
while(EOC==0);
while(EOC!=0);//等待第4通道转换结束
AD_DATA[3]= *((unsigned volatile char *)AD_ADDR);
AD_DATA[3]&=0x0ff;
while(EOC==0);
}
前面的关于gpio口的配置没有贴出 |