Example #1
0
// Mpu6050 xuat ra gia tri 16bit
signed int16 GetdataMpu6050(unsigned int8 RegAddr)
{
 unsigned int8 LSB;
 unsigned int8 MSB;
 MSB=ReadMpu6050(RegAddr);
 LSB=ReadMpu6050(RegAddr+1); 
 return (make16(MSB,LSB));
 }
Example #2
0
// Self test MPU6050
void SelftestMpu6050()
{
   Write2Mpu6050(MPU6050_RA_PWR_MGMT_1, 0x00); // internal 8MHz, disabled SLEEP mode, disable CYCLE mode
   Write2Mpu6050(MPU6050_RA_SMPLRT_DIV, 0x07); //sample rate: 8khz
   Write2Mpu6050(MPU6050_RA_CONFIG, 0x06); //DLPF disable
   Write2Mpu6050(MPU6050_RA_GYRO_CONFIG, 0xe0); //Enable Selftest Gyroscope
   Write2Mpu6050(MPU6050_RA_ACCEL_CONFIG, 0xf0); //Enable Selftest Acceleromenter
   delay_ms(5);
   unsigned int8 xg,yg,zg;
   char temp[16];
   xg=ReadMpu6050(MPU6050_RA_SELF_TEST_X);
   yg=ReadMpu6050(MPU6050_RA_SELF_TEST_Y);
   zg=ReadMpu6050(MPU6050_RA_SELF_TEST_Z);
   delay_ms(5);
   sprintf(temp,"%ux%uy%uz\r\n",xg,yg,zg);
   fprintf(com1,temp);// Truyen du lieu len PC   
}
Example #3
0
void get_sensor_data(void)
{
    uint32_t current_millis = millis();
    if((current_millis - s_sample_start_millis) > SAMPLE_PERIOD)
    {
        s_sample_start_millis = current_millis;
        ReadMpu6050(&mpu6050_data_value);
    }
}