求大神看看这ads1115的程序是不是有什么问题,怎么改都出不了结果。
unsigned char Initdata[4]={0};
/*******************Config寄存器*********************/
void Confige1115A()
{
unsigned char i=0;
Initdata[0] =0x90; // 地址 + 写命令
Initdata[1] =0x01; // 指向配置寄存器
Initdata[2] =0x42; // 配置字高字节
Initdata[3] =0xE3; // 配置字低字节
SCL_H;
start();
for(i=0;i<4;i++)
{
Send1byte(Initdata[i]);
_NOP();
}
stop();
}
/************指向转换结果寄存器***************/
void Pointregister1(void)
{
unsigned char i=0;
Initdata[0] =0x90; // 地址 + 写命令
Initdata[1] =0x00; // 指向转换结果寄存器
SDA_out;
SCL_H;
start();
for(i=0;i<2;i++)
{
Send1byte(Initdata[i]);
}
stop();
}
/**************读取转换结果***************/
unsigned int Read1115A(void)
{
unsigned int ResultL,ResultH;
unsigned int Result;
SCL_H;
start();
Send1byte(0x91);
ResultH=Read1byte();
ResultL=Read1byte();
stop();
Result=ResultH*256+ResultL;
return Result;
}
/***********模拟量采集转化为数字量***********/
unsigned int Ad_1115A()
{
unsigned long result_gd;
Confige1115A();
Pointregister1();
result_gd=Read1115A(); //结果存储AD转化值
return result_gd;
}
|