示例#1
0
static msg_t sensorsRead (void*arg)
{
    float acc_x, acc_y, acc_z;
    float gyro_x, gyro_y, gyro_z;
    uint8_t temp;

	/*sensors initializing*/
    gyroInit (&I2CD2, IMU01A_GYRO);
    accInit (&I2CD2, IMU01A_ACC);
    chprintf ((BaseSequentialStream *)&SD2, "Configuration done\n\r");

    while (true)
    {
    	/*gyroscope and temperature reading*/
        gyroRead (&I2CD2, IMU01A_GYRO, &gyro_x, &gyro_y, &gyro_z);
        tempRead (&I2CD2, IMU01A_GYRO, &temp);
        /*accelerometer reading*/
        accRead (&I2CD2, IMU01A_ACC, &acc_x, &acc_y, &acc_z);

        /*printing out magnetometer values*/
        chprintf ((BaseSequentialStream *)&SD2, "%f gX    %f gY    %f gZ    ", gyro_x, gyro_y, gyro_z);      
        /*printing out accelerometer and temperature values*/
        chprintf ((BaseSequentialStream *)&SD2, "%f aX    %f aY    %f aZ    ", acc_x, acc_y, acc_z);
        chprintf ((BaseSequentialStream *)&SD2, "%d T\n\r", temp);     	
    }
}
bool sensorsAutodetect(void)
{

    // gyro must be initialised before accelerometer

    bool gyroDetected = gyroInit();

#ifdef USE_ACC
    if (gyroDetected) {
        accInit(gyro.targetLooptime);
    }
#endif

#ifdef USE_MAG
    compassInit();
#endif

#ifdef USE_BARO
    baroDetect(&baro.dev, barometerConfig()->baro_hardware);
#endif

#ifdef USE_RANGEFINDER
    rangefinderInit();
#endif

#ifdef USE_ADC_INTERNAL
    adcInternalInit();
#endif

    return gyroDetected;
}
示例#3
0
//======================== compass ===================
uint8_t compassInit(void)
{ int ret1,ret2,ret3;
  ret1=gyroInit(); 
  ret2=accInit();
  ret3=magInit();
  //
  return ret3;
}
void  ACC_Init(uint8 task_id){

   ACC_TaskID= task_id;
  
  spiInit(SPI_MASTER);
  
  accInit();

  uartInit( HAL_UART_BR_57600 );



osal_set_event( ACC_TaskID, start_acc );

}
示例#5
0
/*********************************************************************
 * @fn      accelEnablerChangeCB
 *
 * @brief   Called by the Accelerometer Profile when the Enabler Attribute
 *          is changed.
 *
 * @param   none
 *
 * @return  none
 */
static void accelEnablerChangeCB( void )
{
  bStatus_t status = Accel_GetParameter( ACCEL_ENABLER, &accelEnabler );

  if (status == SUCCESS){
    if (accelEnabler)
    {
      // Initialize accelerometer
      accInit();
      // Setup timer for accelerometer task
      osal_start_timerEx( keyfobapp_TaskID, KFD_ACCEL_READ_EVT, ACCEL_READ_PERIOD );
    } else
    {
      // Stop the acceleromter
      osal_stop_timerEx( keyfobapp_TaskID, KFD_ACCEL_READ_EVT);
    }
  } else
  {
    //??
  }
}