Exemple #1
0
void ant_v2x_periodic( void ) {    /* Run initialisation and communication request */
  switch (ant_v2x_status) {
  case MAG_S_RESET:
    SetBit(ANT_V2X_PORT, ANT_V2X_PIN);
    ant_v2x_status = MAG_S_UNINIT;
    break;
  case MAG_S_UNINIT:
    ant_v2x_periodic_initialise();
    break;
  case MAG_S_READY:                      /* Ready to receive request */
    /*GREEN_LED_ON();*/
    /*YELLOW_LED_OFF();*/
    //  if (ant_v2x_data_available) return
    ant_v2x_send_get_data();
    ant_v2x_status = MAG_S_WAIT_MEAS;
    ant_v2x_periodic_count = 0;
    break;
  case MAG_S_WAIT_MEAS: {     /* Waiting for measures */
    ant_v2x_periodic_count++;
    if (ant_v2x_periodic_count > 5) {
      ant_v2x_com_status = MAG_CS_READING;
      SPI_start();
      ant_v2x_res_idx = 0;
      ant_v2x_res_len = 43;
      SPI_transmit(0x00);
    }
  }
    break;
  }
}
Exemple #2
0
/********************************Request procedure***********************************/
void ant_v2x_send_req(const uint8_t* req, uint8_t len) {
  memcpy(ant_v2x_req, req, len);
  ant_v2x_req_len = len;
  ant_v2x_req_idx = 0;
  ant_v2x_com_status = MAG_CS_WRITING;
  SPI_start();
  SPI_transmit(SYNC_FLAG);/* transmit SYNC_FLAG first for every beginning of transmition */
}
Exemple #3
0
void SPI_init(SPIDef * port, GPIOPin sck, GPIOPin miso, GPIOPin mosi, GPIOPin ncs) {  
  SPI_enable(port);
  SPI_IOconfig(port, sck, miso, mosi, ncs);
  SPI_start(port);
}