void main(void) { struct device *bmg160; #if defined(CONFIG_BMG160_GYRO_RANGE_RUNTIME) struct sensor_value attr; #endif bmg160 = device_get_binding("bmg160"); if (!bmg160) { printf("Device not found.\n"); return; } #if defined(CONFIG_BMG160_GYRO_RANGE_RUNTIME) /* * Set gyro range to +/- 250 degrees/s. Since the sensor API needs SI * units, convert the range to rad/s. */ sensor_degrees_to_rad(250, &attr); if (sensor_attr_set(bmg160, SENSOR_CHAN_GYRO_ANY, SENSOR_ATTR_FULL_SCALE, &attr) < 0) { printf("Cannot set gyro range.\n"); return; } #endif printf("Testing the polling mode.\n"); test_polling_mode(bmg160); printf("Polling mode test finished.\n"); printf("Testing the trigger mode.\n"); test_trigger_mode(bmg160); printf("Trigger mode test finished.\n"); }
void main(void) { struct device *bmi160; #if defined(CONFIG_BMI160_ACCEL_RANGE_RUNTIME) ||\ defined(CONFIG_BMI160_GYRO_RANGE_RUNTIME) struct sensor_value attr; #endif printk("IMU: Binding...\n"); bmi160 = device_get_binding(CONFIG_BMI160_NAME); if (!bmi160) { printk("Gyro: Device not found.\n"); return; } #if defined(CONFIG_BMI160_ACCEL_RANGE_RUNTIME) /* * Set accelerometer range to +/- 16G. Since the sensor API needs SI * units, convert the range to m/s^2. */ sensor_g_to_ms2(16, &attr); if (sensor_attr_set(bmi160, SENSOR_CHAN_ACCEL_XYZ, SENSOR_ATTR_FULL_SCALE, &attr) < 0) { printk("Cannot set accelerometer range.\n"); return; } #endif #if defined(CONFIG_BMI160_GYRO_RANGE_RUNTIME) /* * Set gyro range to +/- 250 degrees/s. Since the sensor API needs SI * units, convert the range to rad/s. */ sensor_degrees_to_rad(250, &attr); if (sensor_attr_set(bmi160, SENSOR_CHAN_GYRO_XYZ, SENSOR_ATTR_FULL_SCALE, &attr) < 0) { printk("Cannot set gyro range.\n"); return; } #endif #ifdef PERFORM_MANUAL_CALIBRATION /* manually adjust accelerometer and gyro offsets */ if (manual_calibration(bmi160) < 0) { printk("Manual calibration failed.\n"); return; } #endif #ifdef PERFORM_AUTO_CALIBRATION /* auto calibrate accelerometer and gyro */ if (auto_calibration(bmi160) < 0) { printk("HW calibration failed.\n"); return; } #endif printk("Testing the polling mode.\n"); test_polling_mode(bmi160); printk("Testing the polling mode finished.\n"); #ifdef CONFIG_BMI160_TRIGGER printk("Testing the trigger mode.\n"); test_trigger_mode(bmi160); printk("Testing the trigger mode finished.\n"); #endif }