示例#1
0
文件: ms5611.c 项目: dvescovi1/mSdk
bool ms5611_read_prom_cmd_send(MS5611_t *structure)
{
	Twi_t *TwiStruct = structure->TWI;
	TwiStruct->MasterSlaveAddr = MS5611_ADDR;
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C1_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C0 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C2_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C1 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C3_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C2 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C4_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C3 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C5_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C4 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C6_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C5 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C7_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C6 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	TwiStruct->TxBuff[0] = MS5611_CONVERT_PROM_READ_C8_CMD;
	if(!SetupI2CReception(TwiStruct, 1, 2)) return false;
	structure->prom_data.C7 = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];

	return true;
}
示例#2
0
文件: mhc5883.c 项目: dvescovi1/mSdk
bool mhc5883_mode_set(MHC5883_t *structure, unsigned char Value)
{
	Twi_t *TwiStruct = structure->TWI;
	TwiStruct->MasterSlaveAddr = MHC5883_ADDR;
	TwiStruct->TxBuff[0] = MHC5883_MODE_REG;
	if(!SetupI2CReception(TwiStruct, 1, 1)) return false;
	TwiStruct->TxBuff[1] = (TwiStruct->RxBuff[0] & ~MHC5883_MODE_REG_MD_gm) | ((Value << MHC5883_MODE_REG_MD_gp) & MHC5883_MODE_REG_MD_gm);
	if(!SetupI2CTransmit(TwiStruct, 2)) return false;
	return true;
}
示例#3
0
文件: Touch.c 项目: ev3osek/ev3osek
/*
** Reads the data from registers of Power Management IC(PMIC). 
*/
 void ReadFromPMIC(char regAddr, char*data)
{
    count = 0;
    rCount = 0;
     
    dataToPmic[0] = regAddr;
    SetupI2CTransmit2(1);
    SetupI2CReception(1);

    *data = dataFromSlave[rCount];
}
示例#4
0
文件: mhc5883.c 项目: dvescovi1/mSdk
bool mhc5883_data_get(MHC5883_t *structure, signed short *X_Axis, signed short *Y_Axis, signed short *Z_Axis)
{
	Twi_t *TwiStruct = structure->TWI;
	TwiStruct->MasterSlaveAddr = MHC5883_ADDR;
	TwiStruct->TxBuff[0] = MHC5883_DATA_OUT_X_H;
	if(!SetupI2CReception(TwiStruct, 1, 6)) return false;
	*X_Axis = (TwiStruct->RxBuff[0] << 8) + TwiStruct->RxBuff[1];
	*Z_Axis = (TwiStruct->RxBuff[2] << 8) + TwiStruct->RxBuff[3];
	*Y_Axis = (TwiStruct->RxBuff[4] << 8) + TwiStruct->RxBuff[5];
	return true;
}
示例#5
0
文件: ms5611.c 项目: dvescovi1/mSdk
bool ms5611_adc_get_cmd_send(MS5611_t *structure, unsigned long *data, unsigned char osr)
{
	timer_interval(&structure->Timeout_Timer, 15);
	Twi_t *TwiStruct = structure->TWI;
	TwiStruct->MasterSlaveAddr = MS5611_ADDR;
	TwiStruct->TxBuff[0] = MS5611_ADC_READ_CMD;
	while(!SetupI2CReception(TwiStruct, 1, 3)) {
		if(timer_tick(&structure->Timeout_Timer))
			return false;
	}
	if(TwiStruct->RxBuff[0] == 0 && TwiStruct->RxBuff[1] == 0 && TwiStruct->RxBuff[2] == 0) return false;
	*data = (TwiStruct->RxBuff[0] << 16) + (TwiStruct->RxBuff[1] << 8) + TwiStruct->RxBuff[2];
	return true;
}