问题:
1.cs5513是20位AD怎么设计成16位AD?
2.cs5513将转换的值送显示怎么不对?程序如下:
#define ADCLK P14
#define ADSDO P13
void CS5513 ()
{
uchar i;
AD_val=0;
ADCLK=0;
// while(ADSDO);
for(i=0;i<24;i++)
{
_nop_();_nop_();
ADCLK=1;
AD_val=AD_val<<1;
_nop_();_nop_();
_nop_();_nop_();
if(ADSDO)
AD_val++;
ADCLK=0;
_nop_();_nop_();
_nop_();_nop_();
}
while(!ADSDO);
AD_val=AD_val>>4;
}
void main()
{
CS5513();
//AD_val=ADConv();
//AD_val=AD_val/16;
a[1]=AD_val/1000000;
a[2]=AD_val%1000000/100000;
a[3]=AD_val%1000000%100000/10000;
a[4]=AD_val%1000000%100000%10000/1000;
a[5]=AD_val%1000000%100000%10000%1000/100;
a[6]=AD_val%1000000%100000%10000%1000%100/10;
a[7]=AD_val%10;
DisplayLED(a,8);
delayms(500);
}
AD显示的值不变化?我的AD驱动程序有问题吗?
在这AD驱动转换程序中值(AD_val)转换出来是十进制还是十六进制? |