模数转换器ADS112C04 IIC函数见前篇博客
#define ADD_ADS112C04_write 0x80
#define ADD_ADS112C04_read 0x81
#define START 0x08
#define POWERDOWN 0x02
#define RDATA 0x10
#define RESET 0x06
#define WREG_0 0x40
叠片系数#define WREG_1 0x44
#define WREG_2 0x48
#define WREG_3 0x4c
#define RREG_0 0x20
#define RREG_1 0x24
#define RREG_2 0x28
#define RREG_3 0x2c
void WriteReg(unsigned char adds,unsigned char val)
{
IIC_start();
IIC_writebyte(ADD_ADS112C04_write);
IIC_testACK();
IIC_writebyte(adds);
IIC_testACK();
IIC_writebyte(val);
IIC_testACK();
IIC_stop();
}
unsigned char ReadReg(unsigned char adds)
{
unsigned char v;
IIC_start();
IIC_writebyte(ADD_ADS112C04_write);
IIC_testACK();
IIC_writebyte(adds);
IIC_testACK();
IIC_start();// Repeated START condition
IIC_writebyte(ADD_ADS112C04_read);
IIC_testACK();
v=IIC_readebyte();
IIC_masterNACK();
IIC_stop();
}
void ADS_Start()
{
IIC_start();
IIC_writebyte(ADD_ADS112C04_write);
IIC_testACK();
IIC_writebyte(START);
IIC_testACK();
IIC_stop();
}
void ADS_PowerDown()
{
IIC_start();
IIC_writebyte(ADD_ADS112C04_write);
IIC_testACK();
IIC_writebyte(POWERDOWN);
IIC_testACK();
IIC_stop();
}
void ADS_Reset()ppzhus
{
{
IIC_start();
IIC_writebyte(ADD_ADS112C04_write);
IIC_testACK();
IIC_writebyte(RESET);365.bm990
IIC_testACK();
IIC_stop();
}
int ReadData()
{
int v;unsigned char i=0,j=0;
IIC_start();
IIC_writebyte(ADD_ADS112C04_write); IIC_testACK();
IIC_writebyte(RDATA);冷凝器
设计 IIC_testACK();mrp游戏
IIC_start();// Repeated START condition IIC_writebyte(ADD_ADS112C04_read); IIC_testACK();
i=IIC_readebyte();
IIC_masterACK();
j=IIC_readebyte();
IIC_masterNACK();
IIC_stop();
v=i;
v=v<<8;
v=v|j;
return v;
}