uchar Getdata()
{
uchar data1=0,data2=0,i;
CS=0;
;
CLK=1;
DIO=1;
_nop_();
CLK=0;//第一次下降沿之前,DIO=1,表示开始.
CLK=1;
DIO=1;
_nop_();
;
CLK=0;
CLK=1;
DIO=1;
_nop_();
;
CLK=0;//第二三次下降沿,DIO=11,选择CH1转换.
for(i=0;i<8;i++) // MSB->LSB
{
data1<<=1;
CLK=1;
_nop_();
_nop_();
CLK=0;
if(DIO==1)data1|=1;
}
for(i=1;i<8;i++) //读取7位,LSB在上次已经读取完毕
{
CLK=1;
_nop_();
_nop_();
CLK=0;
if(DIO)data2|=(1<<i);
}
data2|=(data1&1);
CS=1;
if(data2==data1)return data1;
return -1;
}
ADC0832的C程序(我怎么感觉网上的各种坑爹,还是自己YY了一个)
最新推荐文章于 2024-03-08 00:15:00 发布