Beispiel #1
0
static void app_rover_setup(app_common *com, app_remote *rem, configuration_t *cnf) {
  common = com;
  remote = rem;
  app_cfg = cnf;

#ifdef CONFIG_SPYBOT_HCSR
  RANGE_SENS_init(app_rover_radar_cb);
#endif

#ifdef CONFIG_I2C
  I2C_config(_I2C_BUS(0), 100000);

  STMPE_init();

#ifdef CONFIG_SPYBOT_LSM
  task *config_lsm_t = TASK_create(app_rover_setup_lsm, 0);
  ASSERT(config_lsm_t);
  TASK_run(config_lsm_t, 0, NULL);
#endif

  CFG_EE_init(&eeprom_dev, app_rover_cfg_cb);
  CFG_EE_load_config();

#endif // CONFIG_I2C
#ifdef CONFIG_SPYBOT_MOTOR
  MOTOR_init();
#endif
#ifdef CONFIG_SPYBOT_SERVO
  SERVO_init();
#endif
  mech_task = TASK_create(app_rover_mech_task, TASK_STATIC);
  TASK_start_timer(mech_task, &mech_timer, 0, 0, 0, 20, "mech");
#ifdef CONFIG_SPYBOT_HCSR
  radar_task = TASK_create(app_rover_radar_task, TASK_STATIC);
  TASK_start_timer(radar_task, &radar_timer, 0, 0, 100, 65, "radar");
#endif // CONFIG_SPYBOT_HCSR

#ifdef CONFIG_SPYBOT_LSM
  int i;
  for (i = 0; i < 3; i++) {
    acc_extremes[i][0] = S16_MAX;
    acc_extremes[i][1] = S16_MIN;
    mag_extremes[i][0] = S16_MAX;
    mag_extremes[i][1] = S16_MIN;
  }
#endif
  COMRAD_init();
}
Beispiel #2
0
///*
int main(void)
{  
    char keyVal;
    static bool sw_adxl345 = true,sw_l3g4200d = true, sw_hmc5883l=true,sw_bmp085 =true;
    
    SystemInit();
    USART3_Config();
    I2C_config();
    L3G4200D_Init();
    printf("Initial successed!\n\r");
    while(1)
    {
       // L3G4200D_MultRead(&l3g4200d);   //讀陀螺儀數據(速度:較快)
	L3G4200D_Read(&l3g4200d);
	L3G4200D_Printf(&l3g4200d);
        Delayms(10);    
    }
}
Beispiel #3
0
static void app_rover_lsm_task(u32_t a, void *b) {
  TRACE_USR_MSG(0x00);
  if (reading_lsm) {
    TRACE_USR_MSG(0x01);
    return;
  }
  if (!TASK_mutex_lock(&i2c_mutex)) {
    TRACE_USR_MSG(0x02);
    return;
  }
  TRACE_USR_MSG(0x10);

  reading_lsm = TRUE;
  int res = lsm_read_both(&lsm_dev);
  if (res != I2C_OK) {
    TRACE_USR_MSG(0x11);
    I2C_reset(_I2C_BUS(0));
    I2C_config(_I2C_BUS(0), 100000);
    TASK_mutex_unlock(&i2c_mutex);
    reading_lsm = FALSE;
  }
}
Beispiel #4
0
/*
 * @ open I2C port
 */
int I2C_open(i2c_mode_t type) {
	I2C_GPIO_INIT();
	I2C_config(type);
	return 0;
}