我在 使用TLV2541时写的驱动会出现数据丢失的问题,比如后6位一直为1,则读得的最小值是63,分度值也就变成了63,有时候是127,驱动是自己写的,不知道是不是驱动写的有问题,请问有没有TLV2541的驱动函数供参考,谢谢。
uint get_adc() {
uchar i;
uint adc_value=0;
SCLK = 0;
SCLK = 1;
SCLK = 0;
ACS = 0;
for(i=0;i<16;i++)
{ SCLK = 1; SCLK = 0; }
delay_us(10);
ACS = 1;
SCLK = 0;
SCLK = 1;
SCLK = 0;
delay_us(5);
ACS = 0;
for(i=0;i<11;i++)
{ SCLK = 1; adc_value <<= 1; SCLK = 0; adc_value |= SDO; }
ACS = 1;
SCLK = 1;
adc_value <<= 1;
SCLK = 0;
adc_value |= SDO;
SCLK = 0;
return adc_value; }