예제 #1
0
/* reads prom register into val and returns 0
 * if the read failed, val remains untouched
 * and a negative error code is returned */
static int ms5611_read_prom(ms5611_t *ms5611, uint8_t reg)
{
   THROW_BEGIN();
   uint8_t raw[2];
   THROW_ON_ERR(i2c_read_block_reg(&ms5611->i2c_dev, MS5611_PROM_READ(reg), raw, sizeof(raw)));
   ms5611->prom[reg] = raw[1] | (raw[0] << 8);
   THROW_END();
}
예제 #2
0
void USB_DEBUG_RADIO(void)
{
	int16_t ACCELDATA[3];
	int16_t GYRODATA[3];
//	int16_t TEMPDATA;
	int16_t MAGDATA[3];
	
	float ACCELDATA_F[3];
	float GYRODATA_F[3];
	float MAGDATA_F[3];
//	float TEMP_F;
	
	uint16_t ADCTEMP;

	static uint16_t MS5611_PROM[7];
	static float MS5611_TEMP_NoOffset[2],MS5611_TaPAfterOffset[2],PRESSUREDATA;
	
	MS5611_PROM_READ(MS5611_PROM);
	MS5611_GetTempture(CMD_MS5611_D2_OSR_4096, MS5611_PROM, MS5611_TEMP_NoOffset);
	MS5611_GetPressure(CMD_MS5611_D1_OSR_4096, MS5611_PROM, MS5611_TEMP_NoOffset, MS5611_TaPAfterOffset);
	PRESSUREDATA = MS5611_TaPAfterOffset[1] * 0.01f;
	
	if(BBSYSTEM.NRFONLINE==1)
		USB_printf("NRF is online!\n");
	
	if(BBSYSTEM.MPU9250ONLINE==1)	
		USB_printf("MPU checking pass!\n");
	
	READ_MPU9250_ACCEL_RAW(ACCELDATA);
	READ_MPU9250_GYRO_RAW(GYRODATA);
	READ_MPU9250_Bypass_MAG_RAW(MAGDATA);
//	TEMPDATA=READ_MPU9250_TEMP_RAW();
	
	ACCELDATA_F[0]=ACCELDATA[0]/ACCELLSB;
	ACCELDATA_F[1]=ACCELDATA[1]/ACCELLSB;
	ACCELDATA_F[2]=ACCELDATA[2]/ACCELLSB;	
	GYRODATA_F[0]=GYRODATA[0]/GYROLSB;
	GYRODATA_F[1]=GYRODATA[1]/GYROLSB;
	GYRODATA_F[2]=GYRODATA[2]/GYROLSB;
	MAGDATA_F[0]=MAGDATA[0]*MAGLSB;
	MAGDATA_F[1]=MAGDATA[1]*MAGLSB;
	MAGDATA_F[2]=MAGDATA[2]*MAGLSB;
//TEMP_F=TEMPDATA/340.0 + 36.53;
	
	ADCTEMP = adcBatteryConversion();
  USB_printf("The BatVolt is: %d mv\n",ADCTEMP);
	USB_printf("The Pressure is: %0.4f mbar\n", PRESSUREDATA);
	USB_printf("X axis Acceleration is: %0.4f g\n",ACCELDATA_F[0]);
	USB_printf("Y axis Acceleration is: %0.4f g\n",ACCELDATA_F[1]);
	USB_printf("Z axis Acceleration is: %0.4f g\n",ACCELDATA_F[2]);
	USB_printf("X axis Gyro is: %0.3f deg/s\n",GYRODATA_F[0]);
	USB_printf("Y axis Gyro is: %0.3f deg/s\n",GYRODATA_F[1]);
	USB_printf("Z axis Gyro is: %0.3f deg/s\n",GYRODATA_F[2]);
	USB_printf("X axis Mag is: %0.3f uT\n",MAGDATA_F[0]);
	USB_printf("Y axis Mag is: %0.3f uT\n",MAGDATA_F[1]);
	USB_printf("Z axis Mag is: %0.3f uT\n",MAGDATA_F[2]);
	USB_printf("==================================\n");
	
	//USB_TxWrite(NRF24L01_RXDATA,strlen(NRF24L01_RXDATA));
	//USB_printf("\n");
}