diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2013-12-21 12:45:04 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-12-21 12:45:04 +0100 |
commit | 0f0dc5ba068d24fb8b339acc8ef850f5f6ea9e47 (patch) | |
tree | 131e94ced6f0419de146736b7369c91ab393c139 /src | |
parent | f174ca3ce5dfe338b79f52de46f127abf1c3aca1 (diff) | |
download | px4-firmware-0f0dc5ba068d24fb8b339acc8ef850f5f6ea9e47.tar.gz px4-firmware-0f0dc5ba068d24fb8b339acc8ef850f5f6ea9e47.tar.bz2 px4-firmware-0f0dc5ba068d24fb8b339acc8ef850f5f6ea9e47.zip |
Allowed custom battery scaling on IO
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/px4io/px4io.cpp | 17 | ||||
-rw-r--r-- | src/modules/sensors/sensor_params.c | 1 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp index 9e84bf929..df96fa0bb 100644 --- a/src/drivers/px4io/px4io.cpp +++ b/src/drivers/px4io/px4io.cpp @@ -896,8 +896,21 @@ PX4IO::task_main() /* re-upload RC input config as it may have changed */ io_set_rc_config(); - } - } + + /* re-set the battery scaling */ + int32_t voltage_scaling_val; + param_t voltage_scaling_param; + + /* see if bind parameter has been set, and reset it to -1 */ + param_get(voltage_scaling_param = param_find("BAT_V_SCALE_IO"), &voltage_scaling_val); + + /* send channel config to IO */ + uint16_t scaling = voltage_scaling_val; + int pret = io_reg_set(PX4IO_PAGE_SETUP, PX4IO_P_SETUP_VBATT_SCALE, &scaling, 1); + + if (pret != OK) { + log("voltage scaling upload failed"); + } perf_end(_perf_update); } diff --git a/src/modules/sensors/sensor_params.c b/src/modules/sensors/sensor_params.c index 2aa15420a..78d4b410a 100644 --- a/src/modules/sensors/sensor_params.c +++ b/src/modules/sensors/sensor_params.c @@ -195,6 +195,7 @@ PARAM_DEFINE_INT32(RC_RL1_DSM_VCC, 0); /* Relay 1 controls DSM VCC */ #endif PARAM_DEFINE_INT32(RC_DSM_BIND, -1); /* -1 = Idle, 0 = Start DSM2 bind, 1 = Start DSMX bind */ +PARAM_DEFINE_INT32(BAT_V_SCALE_IO, 10000); #ifdef CONFIG_ARCH_BOARD_PX4FMU_V2 PARAM_DEFINE_FLOAT(BAT_V_SCALING, 0.0082f); #else |