TLV2541ADC驱动程序求助
时间:10-02
整理:3721RD
点击:
我在 使用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; }
可能程序本身没有错误, 但是在 SCLK 变化之间, 最好都增加一点延时, 以保证 TLV2541 可靠的时钟信号识别
多次采样求平均值
第一个16次循环作用是干啥?后面需要延时吧!