模数转换器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();
	return v;
} 
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()
{
    
    
	IIC_start();
	IIC_writebyte(ADD_ADS112C04_write);
	IIC_testACK();
	IIC_writebyte(RESET);
	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();
    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;
} 

猜你喜欢

转载自blog.csdn.net/qq_43710693/article/details/103275581
今日推荐