mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-02-20 10:54:14 +01:00
MPU9K - merge 9k and 6k settings into a single uavo
This commit is contained in:
parent
951c9c2fad
commit
15e7286078
@ -32,28 +32,28 @@
|
||||
#ifndef PIOS_MPU6000_CONFIG_H
|
||||
#define PIOS_MPU6000_CONFIG_H
|
||||
|
||||
#include "mpu6000settings.h"
|
||||
#include "mpugyroaccelsettings.h"
|
||||
#include "pios_mpu6000.h"
|
||||
|
||||
#define PIOS_MPU6000_CONFIG_MAP_GYROSCALE(x) \
|
||||
(x == MPU6000SETTINGS_GYROSCALE_SCALE_250 ? PIOS_MPU6000_SCALE_250_DEG : \
|
||||
x == MPU6000SETTINGS_GYROSCALE_SCALE_500 ? PIOS_MPU6000_SCALE_500_DEG : \
|
||||
x == MPU6000SETTINGS_GYROSCALE_SCALE_1000 ? PIOS_MPU6000_SCALE_1000_DEG : \
|
||||
(x == MPUGYROACCELSETTINGS_GYROSCALE_SCALE_250 ? PIOS_MPU6000_SCALE_250_DEG : \
|
||||
x == MPUGYROACCELSETTINGS_GYROSCALE_SCALE_500 ? PIOS_MPU6000_SCALE_500_DEG : \
|
||||
x == MPUGYROACCELSETTINGS_GYROSCALE_SCALE_1000 ? PIOS_MPU6000_SCALE_1000_DEG : \
|
||||
PIOS_MPU6000_SCALE_2000_DEG)
|
||||
|
||||
#define PIOS_MPU6000_CONFIG_MAP_ACCELSCALE(x) \
|
||||
(x == MPU6000SETTINGS_ACCELSCALE_SCALE_2G ? PIOS_MPU6000_ACCEL_2G : \
|
||||
x == MPU6000SETTINGS_ACCELSCALE_SCALE_4G ? PIOS_MPU6000_ACCEL_4G : \
|
||||
x == MPU6000SETTINGS_ACCELSCALE_SCALE_16G ? PIOS_MPU6000_ACCEL_16G : \
|
||||
(x == MPUGYROACCELSETTINGS_ACCELSCALE_SCALE_2G ? PIOS_MPU6000_ACCEL_2G : \
|
||||
x == MPUGYROACCELSETTINGS_ACCELSCALE_SCALE_4G ? PIOS_MPU6000_ACCEL_4G : \
|
||||
x == MPUGYROACCELSETTINGS_ACCELSCALE_SCALE_16G ? PIOS_MPU6000_ACCEL_16G : \
|
||||
PIOS_MPU6000_ACCEL_8G)
|
||||
|
||||
#define PIOS_MPU6000_CONFIG_MAP_FILTERSETTING(x) \
|
||||
(x == MPU6000SETTINGS_FILTERSETTING_LOWPASS_188_HZ ? PIOS_MPU6000_LOWPASS_188_HZ : \
|
||||
x == MPU6000SETTINGS_FILTERSETTING_LOWPASS_98_HZ ? PIOS_MPU6000_LOWPASS_98_HZ : \
|
||||
x == MPU6000SETTINGS_FILTERSETTING_LOWPASS_42_HZ ? PIOS_MPU6000_LOWPASS_42_HZ : \
|
||||
x == MPU6000SETTINGS_FILTERSETTING_LOWPASS_20_HZ ? PIOS_MPU6000_LOWPASS_20_HZ : \
|
||||
x == MPU6000SETTINGS_FILTERSETTING_LOWPASS_10_HZ ? PIOS_MPU6000_LOWPASS_10_HZ : \
|
||||
x == MPU6000SETTINGS_FILTERSETTING_LOWPASS_5_HZ ? PIOS_MPU6000_LOWPASS_5_HZ : \
|
||||
(x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_188_HZ ? PIOS_MPU6000_LOWPASS_188_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_98_HZ ? PIOS_MPU6000_LOWPASS_98_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_42_HZ ? PIOS_MPU6000_LOWPASS_42_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_20_HZ ? PIOS_MPU6000_LOWPASS_20_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_10_HZ ? PIOS_MPU6000_LOWPASS_10_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_5_HZ ? PIOS_MPU6000_LOWPASS_5_HZ : \
|
||||
PIOS_MPU6000_LOWPASS_256_HZ)
|
||||
/**
|
||||
* @brief Updates MPU6000 config based on Mpu6000Settings UAVO
|
||||
@ -61,13 +61,13 @@
|
||||
*/
|
||||
int32_t PIOS_MPU6000_CONFIG_Configure()
|
||||
{
|
||||
Mpu6000SettingsInitialize();
|
||||
Mpu6000SettingsData mpu6000settings;
|
||||
Mpu6000SettingsGet(&mpu6000settings);
|
||||
MPUGyroAccelSettingsInitialize();
|
||||
MPUGyroAccelSettingsData mpuSettings;
|
||||
MPUGyroAccelSettingsGet(&mpuSettings);
|
||||
return PIOS_MPU6000_ConfigureRanges(
|
||||
PIOS_MPU6000_CONFIG_MAP_GYROSCALE(mpu6000settings.GyroScale),
|
||||
PIOS_MPU6000_CONFIG_MAP_ACCELSCALE(mpu6000settings.AccelScale),
|
||||
PIOS_MPU6000_CONFIG_MAP_FILTERSETTING(mpu6000settings.FilterSetting)
|
||||
PIOS_MPU6000_CONFIG_MAP_GYROSCALE(mpuSettings.GyroScale),
|
||||
PIOS_MPU6000_CONFIG_MAP_ACCELSCALE(mpuSettings.AccelScale),
|
||||
PIOS_MPU6000_CONFIG_MAP_FILTERSETTING(mpuSettings.FilterSetting)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -32,42 +32,42 @@
|
||||
#ifndef PIOS_MPU9250_CONFIG_H
|
||||
#define PIOS_MPU9250_CONFIG_H
|
||||
|
||||
#include "mpu9250settings.h"
|
||||
#include "mpugyroaccelsettings.h"
|
||||
#include "pios_mpu9250.h"
|
||||
|
||||
#define PIOS_MPU9250_CONFIG_MAP_GYROSCALE(x) \
|
||||
(x == MPU9250SETTINGS_GYROSCALE_SCALE_250 ? PIOS_MPU9250_SCALE_250_DEG : \
|
||||
x == MPU9250SETTINGS_GYROSCALE_SCALE_500 ? PIOS_MPU9250_SCALE_500_DEG : \
|
||||
x == MPU9250SETTINGS_GYROSCALE_SCALE_1000 ? PIOS_MPU9250_SCALE_1000_DEG : \
|
||||
(x == MPUGYROACCELSETTINGS_GYROSCALE_SCALE_250 ? PIOS_MPU9250_SCALE_250_DEG : \
|
||||
x == MPUGYROACCELSETTINGS_GYROSCALE_SCALE_500 ? PIOS_MPU9250_SCALE_500_DEG : \
|
||||
x == MPUGYROACCELSETTINGS_GYROSCALE_SCALE_1000 ? PIOS_MPU9250_SCALE_1000_DEG : \
|
||||
PIOS_MPU9250_SCALE_2000_DEG)
|
||||
|
||||
#define PIOS_MPU9250_CONFIG_MAP_ACCELSCALE(x) \
|
||||
(x == MPU9250SETTINGS_ACCELSCALE_SCALE_2G ? PIOS_MPU9250_ACCEL_2G : \
|
||||
x == MPU9250SETTINGS_ACCELSCALE_SCALE_4G ? PIOS_MPU9250_ACCEL_4G : \
|
||||
x == MPU9250SETTINGS_ACCELSCALE_SCALE_16G ? PIOS_MPU9250_ACCEL_16G : \
|
||||
(x == MPUGYROACCELSETTINGS_ACCELSCALE_SCALE_2G ? PIOS_MPU9250_ACCEL_2G : \
|
||||
x == MPUGYROACCELSETTINGS_ACCELSCALE_SCALE_4G ? PIOS_MPU9250_ACCEL_4G : \
|
||||
x == MPUGYROACCELSETTINGS_ACCELSCALE_SCALE_16G ? PIOS_MPU9250_ACCEL_16G : \
|
||||
PIOS_MPU9250_ACCEL_8G)
|
||||
|
||||
#define PIOS_MPU9250_CONFIG_MAP_FILTERSETTING(x) \
|
||||
(x == MPU9250SETTINGS_FILTERSETTING_LOWPASS_188_HZ ? PIOS_MPU9250_LOWPASS_188_HZ : \
|
||||
x == MPU9250SETTINGS_FILTERSETTING_LOWPASS_98_HZ ? PIOS_MPU9250_LOWPASS_98_HZ : \
|
||||
x == MPU9250SETTINGS_FILTERSETTING_LOWPASS_42_HZ ? PIOS_MPU9250_LOWPASS_42_HZ : \
|
||||
x == MPU9250SETTINGS_FILTERSETTING_LOWPASS_20_HZ ? PIOS_MPU9250_LOWPASS_20_HZ : \
|
||||
x == MPU9250SETTINGS_FILTERSETTING_LOWPASS_10_HZ ? PIOS_MPU9250_LOWPASS_10_HZ : \
|
||||
x == MPU9250SETTINGS_FILTERSETTING_LOWPASS_5_HZ ? PIOS_MPU9250_LOWPASS_5_HZ : \
|
||||
(x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_188_HZ ? PIOS_MPU9250_LOWPASS_188_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_98_HZ ? PIOS_MPU9250_LOWPASS_98_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_42_HZ ? PIOS_MPU9250_LOWPASS_42_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_20_HZ ? PIOS_MPU9250_LOWPASS_20_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_10_HZ ? PIOS_MPU9250_LOWPASS_10_HZ : \
|
||||
x == MPUGYROACCELSETTINGS_FILTERSETTING_LOWPASS_5_HZ ? PIOS_MPU9250_LOWPASS_5_HZ : \
|
||||
PIOS_MPU9250_LOWPASS_256_HZ)
|
||||
/**
|
||||
* @brief Updates MPU9250 config based on Mpu9250Settings UAVO
|
||||
* @brief Updates MPU9250 config based on MPUGyroAccelSettings UAVO
|
||||
* @returns 0 if succeed or -1 otherwise
|
||||
*/
|
||||
int32_t PIOS_MPU9250_CONFIG_Configure()
|
||||
{
|
||||
Mpu9250SettingsInitialize();
|
||||
Mpu9250SettingsData mpu9250settings;
|
||||
Mpu9250SettingsGet(&mpu9250settings);
|
||||
MPUGyroAccelSettingsInitialize();
|
||||
MPUGyroAccelSettingsData mpuSettings;
|
||||
MPUGyroAccelSettingsGet(&mpuSettings);
|
||||
return PIOS_MPU9250_ConfigureRanges(
|
||||
PIOS_MPU9250_CONFIG_MAP_GYROSCALE(mpu9250settings.GyroScale),
|
||||
PIOS_MPU9250_CONFIG_MAP_ACCELSCALE(mpu9250settings.AccelScale),
|
||||
PIOS_MPU9250_CONFIG_MAP_FILTERSETTING(mpu9250settings.FilterSetting)
|
||||
PIOS_MPU9250_CONFIG_MAP_GYROSCALE(mpuSettings.GyroScale),
|
||||
PIOS_MPU9250_CONFIG_MAP_ACCELSCALE(mpuSettings.AccelScale),
|
||||
PIOS_MPU9250_CONFIG_MAP_FILTERSETTING(mpuSettings.FilterSetting)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ UAVOBJSRCFILENAMES += waypoint
|
||||
UAVOBJSRCFILENAMES += waypointactive
|
||||
UAVOBJSRCFILENAMES += poilocation
|
||||
UAVOBJSRCFILENAMES += poilearnsettings
|
||||
UAVOBJSRCFILENAMES += mpu6000settings
|
||||
UAVOBJSRCFILENAMES += mpugyroaccelsettings
|
||||
UAVOBJSRCFILENAMES += txpidsettings
|
||||
UAVOBJSRCFILENAMES += takeofflocation
|
||||
UAVOBJSRCFILENAMES += perfcounter
|
||||
|
@ -120,7 +120,7 @@ UAVOBJSRCFILENAMES += waypoint
|
||||
UAVOBJSRCFILENAMES += waypointactive
|
||||
UAVOBJSRCFILENAMES += poilocation
|
||||
UAVOBJSRCFILENAMES += poilearnsettings
|
||||
UAVOBJSRCFILENAMES += mpu6000settings
|
||||
UAVOBJSRCFILENAMES += mpugyroaccelsettings
|
||||
UAVOBJSRCFILENAMES += txpidsettings
|
||||
UAVOBJSRCFILENAMES += takeofflocation
|
||||
UAVOBJSRCFILENAMES += perfcounter
|
||||
|
@ -120,7 +120,7 @@ UAVOBJSRCFILENAMES += waypoint
|
||||
UAVOBJSRCFILENAMES += waypointactive
|
||||
UAVOBJSRCFILENAMES += poilocation
|
||||
UAVOBJSRCFILENAMES += poilearnsettings
|
||||
UAVOBJSRCFILENAMES += mpu6000settings
|
||||
UAVOBJSRCFILENAMES += mpugyroaccelsettings
|
||||
UAVOBJSRCFILENAMES += txpidsettings
|
||||
UAVOBJSRCFILENAMES += takeofflocation
|
||||
|
||||
|
@ -131,8 +131,7 @@ HEADERS += \
|
||||
$$UAVOBJECT_SYNTHETICS/osdsettings.h \
|
||||
$$UAVOBJECT_SYNTHETICS/waypoint.h \
|
||||
$$UAVOBJECT_SYNTHETICS/waypointactive.h \
|
||||
$$UAVOBJECT_SYNTHETICS/mpu6000settings.h \
|
||||
$$UAVOBJECT_SYNTHETICS/mpu9250settings.h \
|
||||
$$UAVOBJECT_SYNTHETICS/mpugyroaccelsettings.h \
|
||||
$$UAVOBJECT_SYNTHETICS/takeofflocation.h \
|
||||
$$UAVOBJECT_SYNTHETICS/auxmagsensor.h \
|
||||
$$UAVOBJECT_SYNTHETICS/auxmagsettings.h \
|
||||
@ -245,8 +244,7 @@ SOURCES += \
|
||||
$$UAVOBJECT_SYNTHETICS/osdsettings.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/waypoint.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/waypointactive.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/mpu6000settings.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/mpu9250settings.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/mpugyroaccelsettings.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/takeofflocation.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/auxmagsensor.cpp \
|
||||
$$UAVOBJECT_SYNTHETICS/auxmagsettings.cpp \
|
||||
|
@ -1,38 +0,0 @@
|
||||
<xml>
|
||||
<object name="Mpu9250Settings" singleinstance="true" settings="true" category="Sensors">
|
||||
<description>Settings for the @ref MPU9250 sensor used on revobone. Reboot the board for this to takes effect</description>
|
||||
<field name="GyroScale" units="deg/s" type="enum" elements="1" defaultvalue="Scale_2000">
|
||||
<options>
|
||||
<option>Scale_250</option>
|
||||
<option>Scale_500</option>
|
||||
<option>Scale_1000</option>
|
||||
<option>Scale_2000</option>
|
||||
</options>
|
||||
</field>
|
||||
<field name="AccelScale" units="g" type="enum" elements="1" defaultvalue="Scale_8g">
|
||||
<options>
|
||||
<option>Scale_2g</option>
|
||||
<option>Scale_4g</option>
|
||||
<option>Scale_8g</option>
|
||||
<option>Scale_16g</option>
|
||||
</options>
|
||||
</field>
|
||||
|
||||
<field name="FilterSetting" units="Hz" type="enum" elements="1" defaultvalue="Lowpass_256_Hz">
|
||||
<options>
|
||||
<option>Lowpass_256_Hz</option>
|
||||
<option>Lowpass_188_Hz</option>
|
||||
<option>Lowpass_98_Hz</option>
|
||||
<option>Lowpass_42_Hz</option>
|
||||
<option>Lowpass_20_Hz</option>
|
||||
<option>Lowpass_10_Hz</option>
|
||||
<option>Lowpass_5_Hz</option>
|
||||
</options>
|
||||
</field>
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
||||
<logging updatemode="manual" period="0"/>
|
||||
</object>
|
||||
</xml>
|
@ -1,6 +1,6 @@
|
||||
<xml>
|
||||
<object name="Mpu6000Settings" singleinstance="true" settings="true" category="Sensors">
|
||||
<description>Settings for the @ref MPU6000 sensor used on CC3D and Revolution. Reboot the board for this to takes effect</description>
|
||||
<object name="MPUGyroAccelSettings" singleinstance="true" settings="true" category="Sensors">
|
||||
<description>Settings for the @ref MPU6000 and MPU9000 sensor series. Used in CC3D, Revolution and RevoBone. Reboot the board for this to takes effect</description>
|
||||
<field name="GyroScale" units="deg/s" type="enum" elements="1" defaultvalue="Scale_2000">
|
||||
<options>
|
||||
<option>Scale_250</option>
|
||||
@ -29,7 +29,6 @@
|
||||
<option>Lowpass_5_Hz</option>
|
||||
</options>
|
||||
</field>
|
||||
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
Loading…
x
Reference in New Issue
Block a user