예제 #1
0
bool srf02_init(uint8_t i2c_interface, uint32_t baud_rate)
{
    if (i2c_initialize(i2c_interface, (uint32_t) I2CMASTER, 0, baud_rate, NULL)
        == false) { /* initialize I2C */
        puts("fatal error happened in i2c_initialize()\n");
        return false;
    }
    else {
        i2c_enable_pull_up_resistor(i2c_interface);
        //i2c_disable_pull_up_resistor(i2c_interface);
        return true;
    }
}
예제 #2
0
void IMU_Initialisation(){
  uint8_t counter=3;
  i2c_initialize(I2C2);
  usart_printf(USART1,"Hello\n\r");
  uint8_t accel_address=0x53;
  uint8_t magnet_address=0x1E;
  uint8_t gyro_address=ITG3200_ADDR_AD0_LOW;
  counter=3;
  while(counter!=0){
    accel_object=accelerometer_initialization(accel_address);
    if(accel_object==null){
      ms_delay(1000);
      counter--;
    }else
      break;
    }
  if(counter==0){
    usart_printf(USARTx,"Failed to initialize accel.Exiting...\n\r");
    while(1);
  }
  usart_printf(USARTx,"Initialized accelerometer\n\r");
  counter=3;
  while(counter!=0){
    magnet_object=magnetometer_initialisation(magnet_address);
    if(magnet_object==null){
      ms_delay(1000);
      counter--;
    }else
      break;
    }
  if(counter==0){
    usart_printf(USARTx,"Failed to initialize magnetometer.Exiting...\n\r");
    while(1);
  }
  usart_printf(USARTx,"Initialized magnetometer\n\r");
  counter=3;
  while(counter!=0){
    gyro_object=gyro_initialisation(gyro_address);
    if(gyro_object==null){
      gyro_object=gyro_initialisation(gyro_address);
      ms_delay(1000);
      counter--;
    }else
      break;
    }
  if(counter==0){
    usart_printf(USARTx,"Failed to initialize gyro.Exiting...\n\r");
    while(1);
  }
  usart_printf(USARTx," initialize gyro\n\r");
}