如图:参考AD7916设计的原理图,ZOUT+输入是:0~5V,但是芯片采集的电压不准确,
u16 ReadWordFromAD7916_Soft(void)
{
u16 RxData=0;
u8 cnt;
AD7916_CNV=1;//CNV上的上升沿启动转换
delay_us(4);//转换所需要的时间
AD7916_CNV=0;//CNV变为低电平时, MSB输出至SDO
delay_us(2);//CNV低电平至SDO D15 MSB有效(CS模式)所需的时间间隔
for (cnt = 0; cnt < 16; ++cnt)
{
AD7916_CLK=0;//时钟 低,下降沿读取数据
delay_us(1);
RxData <<= 1;
if (AD7916_SDO)
{
RxData |= 0x01;
}
AD7916_CLK=1;//时钟 高
delay_us(1);
}
return RxData;
}u16 ReadWordFromAD7916_Soft(void)
{
u16 RxData=0;
u8 cnt;
望大神指点迷津,谢谢!