int mpu9150_read(mpudata_t *mpu) { if (mpu9150_read_dmp(mpu) != 0) return -1; if (mpu9150_read_mag(mpu) != 0) return -1; calibrate_data(mpu); return data_fusion(mpu); }
int mpu9150_read(mpudata_t *mpu) { if (mpu9150_read_dmp(mpu) != 0) return -1; #ifdef AK89xx_SECONDARY if (mpu9150_read_mag(mpu) != 0) return -1; #endif calibrate_data(mpu); return data_fusion(mpu); }
int mpu9150_read(mpudata_t *mpu) { //printk("mpu9150_read..."); int _start = jiffies; if (mpu9150_read_dmp(mpu) != 0) return -1; if (mpu9150_read_mag(mpu) != 0) return -1; //calibrate_data(mpu); //printk("Time for read mpu: %d\n", jiffies_to_msecs(jiffies-_start)); return 0; //data_fusion(mpu); }
void read_loop(unsigned int sample_rate) { int i, change; unsigned long loop_delay; mpudata_t mpu; if (sample_rate == 0) return; memset(&mpu, 0, sizeof(mpudata_t)); for (i = 0; i < 3; i++) { minVal[i] = 0x7fff; maxVal[i] = 0x8000; } loop_delay = (1000 / sample_rate) - 2; printf("\nEntering read loop (ctrl-c to exit)\n\n"); linux_delay_ms(loop_delay); while (!done) { change = 0; if (mag_mode) { if (mpu9150_read_mag(&mpu) == 0) { for (i = 0; i < 3; i++) { if (mpu.rawMag[i] < minVal[i]) { minVal[i] = mpu.rawMag[i]; change = 1; } if (mpu.rawMag[i] > maxVal[i]) { maxVal[i] = mpu.rawMag[i]; change = 1; } } } } else { if (mpu9150_read_dmp(&mpu) == 0) { for (i = 0; i < 3; i++) { if (mpu.rawAccel[i] < minVal[i]) { minVal[i] = mpu.rawAccel[i]; change = 1; } if (mpu.rawAccel[i] > maxVal[i]) { maxVal[i] = mpu.rawAccel[i]; change = 1; } } } } if (change) { if (mag_mode) print_mag(&mpu); else print_accel(&mpu); } linux_delay_ms(loop_delay); } printf("\n\n"); }