void writetoreg(uint32 byteword)
{ uint32 temp2;
uint32 i;
IO0CLR =ADCS;
temp2=0x80;
for(i=0;i<8;i++)
{
if((temp2&byteword)==0)
IO0CLR = ADIN;
else IO0SET= ADIN;
IO0CLR = ADCLK;
IO0SET=ADCLK;
temp2=temp2>>1;
}
IO0SET = ADCS;
}
uint32 SampleTI( uint32 no )
{ uint32 adtemp;
uint32 i,j, k;
k=32;
IO0SET = ADCLK;
IO0CLR = ADCS; //to keep DIN=1 for 32 sclock to reset the part
IO0SET = ADIN;
while(k--)
{
IO0CLR = ADCLK;
IO0SET=ADCLK;
}
IO0SET = ADCS;
writetoreg(0x3C);
IO0CLR = ADIN;
IO0CLR = ADCS;
adtemp = 0;
for(i=0;i<20 ;i++) // 每通道采样20次
{
while(IO0PIN&ADOUT)
{
}
for(j=0;j<24;j++)
{ IO0CLR = ADCLK;
if(ADOUT==0)
adtemp=adtemp<<1;
else
{ adtemp=adtemp<<1;
adtemp=adtemp+0x01;
}
IO0SET=ADCLK;
if(j==23)
{ Advalue[i] = adtemp;
adtemp=0x00;
}
}
}
while(IO0PIN&ADOUT)
{
}
writetoreg(0x38); / /stop continuous read mode
IO0SET = ADCS;
}