Пример #1
0
/********** INIT *************************************************************/
void init_fbw( void ) {

  mcu_init();
  sys_time_init();
  electrical_init();

#ifdef ACTUATORS
  actuators_init();
  /* Load the failsafe defaults */
  SetCommands(commands_failsafe);
  fbw_new_actuators = 1;
#endif
#ifdef RADIO_CONTROL
  radio_control_init();
#endif
#ifdef INTER_MCU
  inter_mcu_init();
#endif
#ifdef MCU_SPI_LINK
  link_mcu_restart();
#endif

  fbw_mode = FBW_MODE_FAILSAFE;

#ifndef SINGLE_MCU
  mcu_int_enable();
#endif
}
Пример #2
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_init();
  led_init();
  uart1_init_tx();
  mcu_int_enable();
}
Пример #3
0
// FIXME: race condition ??
void sys_time_update_timer(tid_t id, float duration)
{
  mcu_int_disable();
  sys_time.timer[id].end_time -= (sys_time.timer[id].duration - sys_time_ticks_of_sec(duration));
  sys_time.timer[id].duration = sys_time_ticks_of_sec(duration);
  mcu_int_enable();
}
Пример #4
0
/********** INIT *************************************************************/
void init_fbw( void ) {

  mcu_init();

  electrical_init();

#ifdef ACTUATORS
  actuators_init();
  /* Load the failsafe defaults */
  SetCommands(commands_failsafe);
  fbw_new_actuators = 1;
#endif
#ifdef RADIO_CONTROL
  radio_control_init();
#endif
#ifdef INTER_MCU
  inter_mcu_init();
#endif
#ifdef MCU_SPI_LINK
  link_mcu_restart();
#endif

  fbw_mode = FBW_MODE_FAILSAFE;

  /**** start timers for periodic functions *****/
  fbw_periodic_tid = sys_time_register_timer((1./60.), NULL);
  electrical_tid = sys_time_register_timer(0.1, NULL);

#ifndef SINGLE_MCU
  mcu_int_enable();
#endif
}
Пример #5
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);
  uart0_init_tx();
  mcu_int_enable();
}
Пример #6
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);

  stateInit();
  actuators_init();

  imu_init();
#if USE_AHRS_ALIGNER
  ahrs_aligner_init();
#endif
  ahrs_init();

  settings_init();

  mcu_int_enable();

  downlink_init();

  register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_AUTOPILOT_VERSION, send_autopilot_version);
  register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ALIVE, send_alive);
  register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_COMMANDS, send_commands);
  register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ACTUATORS, send_actuators);

  // send body_to_imu from here for now
  AbiSendMsgBODY_TO_IMU_QUAT(1, orientationGetQuat_f(&imu.body_to_imu));
}
Пример #7
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_init();
  led_init();
  usb_serial_init();
  mcu_int_enable();
}
Пример #8
0
STATIC_INLINE void main_init(void)
{
  // fbw_init
  fbw_mode = FBW_MODE_FAILSAFE;

  mcu_init();

  actuators_init();

  electrical_init();

#if USE_MOTOR_MIXING
  motor_mixing_init();
#endif

  radio_control_init();

  modules_init();

  mcu_int_enable();

  intermcu_init();

  // register the timers for the periodic functions
  main_periodic_tid = sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);
  modules_tid = sys_time_register_timer(1. / MODULES_FREQUENCY, NULL);
  radio_control_tid = sys_time_register_timer((1. / 60.), NULL);
  electrical_tid = sys_time_register_timer(0.1, NULL);
  telemetry_tid = sys_time_register_timer((1. / 20.), NULL);
}
Пример #9
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / 100), NULL);
  downlink_init();
  adc_init();

#ifdef ADC_0
  adc_buf_channel(ADC_0, &buf_adc[0], ADC_NB_SAMPLES);
#endif
#ifdef ADC_1
  adc_buf_channel(ADC_1, &buf_adc[1], ADC_NB_SAMPLES);
#endif
#ifdef ADC_2
  adc_buf_channel(ADC_2, &buf_adc[2], ADC_NB_SAMPLES);
#endif
#ifdef ADC_3
  adc_buf_channel(ADC_3, &buf_adc[3], ADC_NB_SAMPLES);
#endif
#ifdef ADC_4
  adc_buf_channel(ADC_4, &buf_adc[4], ADC_NB_SAMPLES);
#endif
#ifdef ADC_5
  adc_buf_channel(ADC_5, &buf_adc[5], ADC_NB_SAMPLES);
#endif
#ifdef ADC_6
  adc_buf_channel(ADC_6, &buf_adc[6], ADC_NB_SAMPLES);
#endif
#ifdef ADC_7
  adc_buf_channel(ADC_7, &buf_adc[7], ADC_NB_SAMPLES);
#endif

  mcu_int_enable();
}
Пример #10
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_init();
  led_init();
  gps_init();
  mcu_int_enable();
}
Пример #11
0
STATIC_INLINE void main_init( void ) {

  mcu_init();

  electrical_init();

  stateInit();

  actuators_init();
#if USE_MOTOR_MIXING
  motor_mixing_init();
#endif

  radio_control_init();

  air_data_init();
#if USE_BARO_BOARD
  baro_init();
#endif
  imu_init();
#if USE_IMU_FLOAT
  imu_float_init();
#endif
  ahrs_aligner_init();
  ahrs_init();

  ins_init();

#if USE_GPS
  gps_init();
#endif

  autopilot_init();

  modules_init();

  settings_init();

  mcu_int_enable();

#if DATALINK == XBEE
  xbee_init();
#endif

#if DATALINK == UDP
  udp_init();
#endif

  // register the timers for the periodic functions
  main_periodic_tid = sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
  modules_tid = sys_time_register_timer(1./MODULES_FREQUENCY, NULL);
  radio_control_tid = sys_time_register_timer((1./60.), NULL);
  failsafe_tid = sys_time_register_timer(0.05, NULL);
  electrical_tid = sys_time_register_timer(0.1, NULL);
  telemetry_tid = sys_time_register_timer((1./TELEMETRY_FREQUENCY), NULL);
#if USE_BARO_BOARD
  baro_tid = sys_time_register_timer(1./BARO_PERIODIC_FREQUENCY, NULL);
#endif
}
Пример #12
0
static inline void main_init(void)
{
  mcu_init();
  mcu_int_enable();

  sys_time_register_timer((1. / 50), NULL);
  downlink_init();
  lis302dl_spi_init(&lis302, &(LIS302DL_SPI_DEV), LIS302DL_SPI_SLAVE_IDX);
}
Пример #13
0
STATIC_INLINE void main_init( void ) {

  mcu_init();

  electrical_init();

  stateInit();

  actuators_init();
#if USE_MOTOR_MIXING
 // motor_mixing_init();
 // servo_mixing_init();
  set_servo_init();
#endif

  radio_control_init();

  baro_init();
  imu_init();
  autopilot_init();
  nav_init();
  guidance_h_init();
  guidance_v_init();
  stabilization_init();

  ahrs_aligner_init();
  ahrs_init();

  ins_init();

#if USE_GPS
  gps_init();
#endif

  modules_init();

  settings_init();

  mcu_int_enable();

#if DATALINK == XBEE
  xbee_init();
#endif

#if DATALINK == UDP
  udp_init();
#endif

  // register the timers for the periodic functions
  main_periodic_tid = sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
  modules_tid = sys_time_register_timer(1./MODULES_FREQUENCY, NULL);
  radio_control_tid = sys_time_register_timer((1./60.), NULL);
  failsafe_tid = sys_time_register_timer(0.05, NULL);
  electrical_tid = sys_time_register_timer(0.1, NULL);
  baro_tid = sys_time_register_timer(1./BARO_PERIODIC_FREQUENCY, NULL);
  telemetry_tid = sys_time_register_timer((1./TELEMETRY_FREQUENCY), NULL);
}
Пример #14
0
/********** INIT *************************************************************/
void init_fbw(void)
{
    mcu_init();

#if !(DISABLE_ELECTRICAL)
    electrical_init();
#endif

#ifdef ACTUATORS
    actuators_init();
    /* Load the failsafe defaults */
    SetCommands(commands_failsafe);
    fbw_new_actuators = 1;
#endif /* ACTUATORS */

#ifdef RADIO_CONTROL
    radio_control_init();
#endif /* RADIO_CONTROL */

#ifdef INTER_MCU
    inter_mcu_init();
#endif /* INTER_MCU */

#if defined MCU_SPI_LINK || defined MCU_CAN_LINK
    link_mcu_init();
#endif /* MCU_SPI_LINK || MCU_CAN_LINK */

#ifdef MCU_SPI_LINK
    link_mcu_restart();
#endif /* MCU_SPI_LINK */

    fbw_mode = FBW_MODE_FAILSAFE;

    /**** start timers for periodic functions *****/
    fbw_periodic_tid = sys_time_register_timer((1. / 60.), NULL);
    electrical_tid = sys_time_register_timer(0.1, NULL);

#ifndef SINGLE_MCU
    mcu_int_enable();
#endif

#if PERIODIC_TELEMETRY
    register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_FBW_STATUS, send_fbw_status);
    register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_COMMANDS, send_commands);

#ifdef ACTUATORS
    register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_ACTUATORS, send_actuators);
#endif /* ACTUATORS */

#ifdef RADIO_CONTROL
    register_periodic_telemetry(DefaultPeriodic, PPRZ_MSG_ID_RC, send_rc);
#endif /* RADIO_CONTROL */

#endif /* PERIODIC_TELEMETRY */

}
Пример #15
0
uint32_t mb_tacho_get_duration( void ) {
  int_disable();
  uint32_t my_duration = 0;
  if (got_one_pulse) {
    my_duration = mb_tacho_duration;
  }
  got_one_pulse = FALSE;
  mcu_int_enable();
  return my_duration;
}
Пример #16
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_init();
  led_init();
  uart0_init();
  vor_int_demod_init();
  VorDacInit();
  vor_adc_init();
  mcu_int_enable();
}
Пример #17
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);

  LED_ON(4);
  ami601_init();
  downlink_init();
  mcu_int_enable();
}
Пример #18
0
int main( void ) {
  unsigned char inc;
  unsigned int rx_time=0, tx_time=0;

  mcu_init();
  sys_time_init();
  led_init();
  VCOM_allow_linecoding(1);

#ifdef USE_USB_SERIAL
  VCOM_init();
#endif

  mcu_int_enable();

  LED_ON(3);

#ifdef USE_UART0
  while(1) {
    if (T0TC > (rx_time+((PCLK / T0_PCLK_DIV) / BLINK_MIN))) LED_OFF(1);
    if (T0TC > (tx_time+((PCLK / T0_PCLK_DIV) / BLINK_MIN))) LED_OFF(2);
    if (uart_char_available(&uart0) && VCOM_check_free_space(1)) {
      LED_ON(1);
      rx_time = T0TC;
      inc = uart_getch(&uart0);
      VCOM_putchar(inc);
    }
    if (VCOM_check_available() && uart_check_free_space(&uart0, 1)) {
      LED_ON(2);
      tx_time = T0TC;
      inc = VCOM_getchar();
      uart_transmit(&uart0, inc);
    }
  }
#else
  while(1) {
    if (T0TC > (rx_time+((PCLK / T0_PCLK_DIV) / BLINK_MIN))) LED_OFF(1);
    if (T0TC > (tx_time+((PCLK / T0_PCLK_DIV) / BLINK_MIN))) LED_OFF(2);
    if (uart_char_available(&uart1) && VCOM_check_free_space(1)) {
      LED_ON(1);
      rx_time = T0TC;
      inc = uart_getch(&uart1);
      VCOM_putchar(inc);
    }
    if (VCOM_check_available() && uart_check_free_space(&uart1, 1)) {
      LED_ON(2);
      tx_time = T0TC;
      inc = VCOM_getchar();
      uart_transmit(&uart1, inc);
    }
  }
#endif

  return 0;
}
Пример #19
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);
  settings_init();

  mcu_int_enable();

#if DOWNLINK
  downlink_init();
#endif
}
Пример #20
0
static inline void main_init( void ) {

  mcu_init();
  sys_time_init();
  imu_init();

  //  DEBUG_SERVO1_INIT();
  //  DEBUG_SERVO2_INIT();


  mcu_int_enable();
}
Пример #21
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);
  imu_init();
#if USE_AHRS_ALIGNER
  ahrs_aligner_init();
#endif
  ahrs_init();
  downlink_init();

  mcu_int_enable();
}
Пример #22
0
static inline void main_init( void ) {

  mcu_init();
  sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
  imu_init();
  ahrs_aligner_init();
  ahrs_init();

  DEBUG_SERVO1_INIT();
  //  DEBUG_SERVO2_INIT();

  mcu_int_enable();
}
Пример #23
0
static inline void main_init( void ) {

  mcu_init();
  sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
  settings_init();
  //  DEBUG_SERVO2_INIT();
  //  LED_ON(1);
  //  LED_ON(2);
  //  DEBUG_S4_ON();
  //  DEBUG_S5_ON();
  //  DEBUG_S6_ON();
  mcu_int_enable();

}
Пример #24
0
static inline void main_init( void ) {

  mcu_init();
  sys_time_init();
  settings_init();
  //  DEBUG_SERVO2_INIT();
  //  LED_ON(1);
  //  LED_ON(2);
  //  DEBUG_S4_ON();
  //  DEBUG_S5_ON();
  //  DEBUG_S6_ON();
  mcu_int_enable();

}
Пример #25
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);
  led_init();
  uart0_init();

  motor_power = 0;
  wt_servo_init();
  wt_servo_set(500);

  spi_init();
  wt_baro_init();

  mcu_int_enable();
}
Пример #26
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_init();
  led_init();
  uart0_init();

  motor_power = 0;
  wt_servo_init();
  wt_servo_set(500);

  spi_init();
  wt_baro_init();

  mcu_int_enable();
}
Пример #27
0
static inline void main_init(void)
{
  mcu_init();
  sys_time_register_timer((1. / PERIODIC_FREQUENCY), NULL);
  led_init();
  uart0_init();

  i2c_init();
  mb_twi_controller_init();

  mb_tacho_init();

  //motor_power = 0;

  mcu_int_enable();
}
Пример #28
0
static inline void main_init( void ) {
  mcu_init();
  sys_time_init();
  led_init();

/*   LED_ON(4); */
/*   LED_ON(5); */
/*   LED_ON(6); */
/*   LED_ON(7); */

  uart0_init();
  imu_impl_init();
  imu_init();

  mcu_int_enable();
}
Пример #29
0
void init_fbw( void ) {
    mcu_init();

    actuators_init();

    uint8_t i;
    for(i = 0; i < SERVOS_NB; i++) {
        SetServo(i, 1500);
    }

    //  SetServo(SERVO_GAZ, SERVO_GAZ_MIN);

    sys_time_register_timer((1./PERIODIC_FREQUENCY), NULL);

    mcu_int_enable();
}
Пример #30
0
/********** INIT *************************************************************/
void init_fbw( void ) {

  mcu_init();

#if !(DISABLE_ELECTRICAL)
  electrical_init();
#endif

#ifdef ACTUATORS
  actuators_init();
  /* Load the failsafe defaults */
  SetCommands(commands_failsafe);
  fbw_new_actuators = 1;
#endif
#ifdef RADIO_CONTROL
  radio_control_init();
#endif
#ifdef INTER_MCU
  inter_mcu_init();
#endif
#ifdef MCU_SPI_LINK
  link_mcu_init();
  link_mcu_restart();
#endif

  fbw_mode = FBW_MODE_FAILSAFE;

  /**** start timers for periodic functions *****/
  fbw_periodic_tid = sys_time_register_timer((1./60.), NULL);
  electrical_tid = sys_time_register_timer(0.1, NULL);

#ifndef SINGLE_MCU
  mcu_int_enable();
#endif

#if DOWNLINK
  register_periodic_telemetry(&telemetry_Fbw, "FBW_STATUS", send_fbw_status);
  register_periodic_telemetry(&telemetry_Fbw, "COMMANDS", send_commands);
#ifdef ACTUATORS
  register_periodic_telemetry(&telemetry_Fbw, "ACTUATORS", send_actuators);
#endif
#ifdef RADIO_CONTROL
  register_periodic_telemetry(&telemetry_Fbw, "RC", send_rc);
#endif
#endif

}