示例#1
0
uint8_t distco_startMeasure()
{
  i2c_size = 2;
  i2c_buf[0] = I2C_TX(DISTCO_I2C_ID);
  i2c_buf[1] = 0x01;
  return distco_transmit();
}
示例#2
0
uint8_t distco_stop()
{
  i2c_size = 2;
  i2c_buf[0] = I2C_TX(DISTCO_I2C_ID);
  i2c_buf[1] = 0x00;
  return distco_transmit();
}
示例#3
0
uint8_t distco_transmitRC5(uint16_t rc5)
{
  i2c_size = 4;
  i2c_buf[0] = I2C_TX(DISTCO_I2C_ID);
  i2c_buf[1] = 0x02;
  i2c_buf[2] = HIBYTE(rc5);
  i2c_buf[3] = LOBYTE(rc5);
  return distco_transmit();
}
示例#4
0
char DS1672_Zero(void)
{
	char t;
	char s;
	I2C_Init(90,1000000);
	I2C_Start();
	t=I2C_TX(0xD0);
	if(t!=0) {
		if(t==1)
			Log_Error((FARROM*)"DS1672: Zero Address NACK\r\n");
		if(t==2)
			Log_Error((FARROM*)"DS1672: Zero Address Timeout\r\n");

		return t;
	}
	t=I2C_TX(1);
	if(t!=0) {
		if(t==1)
			Log_Error((FARROM*)"DS1672: Zero Postion NACK\r\n");
		if(t==2)
			Log_Error((FARROM*)"DS1672: Zero Position Position Timeout\r\n");

	}

	for(s=0;s<6;s++)
	{
		t=I2C_TX(0);
		if(t!=0) {
			if(t==1)
				Log_Error((FARROM*)"DS1672: TX NACK\r\n");
			if(t==2)
				Log_Error((FARROM*)"DS1672: TX Timeout\r\n");
	
		}
	}
	I2C_Stop();	

}
示例#5
0
int DS1672_GetNextByte(void)
{
	int t;
	I2C_Init(100,1000000);
	I2C_Start();
	t=I2C_TX(DS1672_READ_ADDRESS);
	if(t!=0) {
		Log_Error((FARROM*)"DS1672: GetNextByte Error sending Address\r\n");
		return -1; 
	}
	t=I2C_RX();
	if(t==-1) {
		Log_Error((FARROM*)"DS1672: GetNextByte Error receiving byte\r\n");
		return -1;
	}
	I2C_NACK();
	I2C_Stop();	
	return t;

}
示例#6
0
unsigned long DS1672_Value(void)
{
	unsigned long value;
	int t;
	unsigned long v;
	I2C_Init(100,1000000);
	I2C_Start();
	t=I2C_TX(0xD1);
	if(t!=0) return 0xffffffff;

	t=I2C_RX();
	if(t==-1) return 0xffffffff;
	value=t;
	I2C_ACK();

	t=I2C_RX();
	if(t==-1) return 0xffffffff;
	v = t;
	value+=v<<8;
	I2C_ACK();

	t=I2C_RX();
	if(t==-1) return 0xffffffff;
	v = t;
	value+=v<<16;
	I2C_ACK();
	
	t=I2C_RX();
	if(t==-1) return 0xffffffff;
	v = t;
	value+=v<<24;
	I2C_NACK();

	I2C_Stop();	
	return value;

}