static void read_accel_raws() { mpu6050_read_accel(&accel_raws); record_max_accel_value(); median_filter_in(accel_x_filter, accel_raws.x); median_filter_in(accel_y_filter, accel_raws.y); median_filter_in(accel_z_filter, accel_raws.z); }
static void mpu6050_work(struct work_struct *work) { int ret; struct mpu6050_data *mpu6050 = container_of( (struct delayed_work *)work, struct mpu6050_data, work); mpu6050_read_gyro(mpu6050); mpu6050_read_accel(mpu6050); mpu6050_read_temprature(mpu6050); mpu6050_dump_all(mpu6050); schedule_delayed_work(&mpu6050->work, msecs_to_jiffies(mpu6050->delay_ms)); }
void calibrate_accel() { axis_int16_t accel_raws; axis_float_t accel_sums; delay(5000); Serial.println("calibrating accel"); for(int i = 0; i < 10000; i++) { mpu6050_read_accel(&accel_raws); accel_sums.x += accel_raws.x; accel_sums.y += accel_raws.y; accel_sums.z += accel_raws.z; delay(1); } Serial.print("x avg: "); Serial.println(accel_sums.x / 10000); Serial.print("y avg: "); Serial.println(accel_sums.y / 10000); Serial.print("z avg: "); Serial.println(accel_sums.z / 10000); }