コード例 #1
0
ファイル: fw_ins_vn100.c プロジェクト: AntoineBlais/paparazzi
static inline bool_t ins_configure( void ) {
  switch (ins_init_status) {
    case INS_VN100_SET_BAUD :
      last_send_packet.RegID = VN100_REG_SBAUD;
      spi_buffer_length = 4+VN100_REG_SBAUD_SIZE;
      ins_init_status++;
      break;
    case INS_VN100_SET_ADOR :
      last_send_packet.RegID = VN100_REG_ADOR;
      spi_buffer_length = 4+VN100_REG_ADOR_SIZE;
      ins_init_status++;
      break;
    case INS_VN100_SET_ADOF :
      last_send_packet.RegID = VN100_REG_ADOF;
      spi_buffer_length = 4+VN100_REG_ADOF_SIZE;
      ins_init_status++;
      break;
    case INS_VN100_READY :
      return TRUE;
  }
  last_send_packet.CmdID = VN100_CmdID_WriteRegister;
  spi_buffer_input = (uint8_t*)&last_received_packet;
  spi_buffer_output = (uint8_t*)&last_send_packet;
  SpiSelectSlave0();
  SpiStart();
  return FALSE;
}
コード例 #2
0
void baro_init( void ) {
  mcp355x_init();
  SpiSelectSlave0(); // never unselect this slave (continious conversion mode)
  baro.status = BS_UNINITIALIZED;
  baro.absolute     = 0;
  baro.differential = 0; /* not handled on this board */
#ifdef ROTORCRAFT_BARO_LED
  LED_OFF(ROTORCRAFT_BARO_LED);
#endif
  startup_cnt = STARTUP_COUNTER;
}
コード例 #3
0
ファイル: fw_ins_vn100.c プロジェクト: AntoineBlais/paparazzi
void ins_periodic_task( void ) {
  if (!SpiCheckAvailable()) {
    SpiOverRun();
    return;
  }

  if (!ins_configure()) return;

  // Fill request for QMR
  last_send_packet.CmdID = VN100_CmdID_ReadRegister;
  last_send_packet.RegID = VN100_REG_YMR;

  spi_buffer_input = (uint8_t*)&last_received_packet;
  spi_buffer_output = (uint8_t*)&last_send_packet;
  spi_buffer_length = 4+VN100_REG_YMR_SIZE;
  SpiSelectSlave0();
  SpiStart();

}