Ejemplo n.º 1
0
static int
do_i2c_si7020(int argc, const char* const* argv)
{
	uint16_t temp, hum;
	uint8_t datum[2];

	if (!IS_ALREADY_INITED)
	       SI7020_Init();
	if(argc == 1 || strcmp(argv[1], "gethumidity") == 0){
		if((SI7020_Read_Humidity((uint16_t *)datum))) {
			hum = ((((datum[1]<<8)|datum[0])*125.0)/65536)-6.0;
			console_printf( argc == 1 ? "%d\n" : "Humidity: %d\n", hum);
		}else{
			console_printf( "Failed to read value\n" );
		}
	}
	if(argc == 1 || strcmp(argv[1], "gettemp") == 0){
		if((SI7020_Read_Temperature((uint16_t *)datum))) {
			temp = ((((datum[1]<<8)|datum[0])*175.72)/65536)-46.85;
			console_printf( argc == 1 ? "%d\n" : "Temperature: %d\n", temp);
		}else{
			console_printf( "Failed to read value\n" );
		}
	}

	return 0;
}
Ejemplo n.º 2
0
uint16_t
SI7020_GetHumidity()
{
	uint16_t hum;
	uint8_t datum[2];

	if (!IS_ALREADY_INITED)
	       SI7020_Init();

	if((SI7020_Read_Humidity((uint16_t *)datum)))
		hum = ((((datum[1]<<8)|datum[0])*125.0)/65536)-6.0;
	else
		hum = 0xffff;
	return hum;
}