aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-12-21 05:44:41 -0800
committerLorenz Meier <lm@inf.ethz.ch>2013-12-21 05:44:41 -0800
commit0869e24e6e02ce64b818eae6b6ac88760694b710 (patch)
tree239e4a550e24b823dbe1fe619085f0a54f38bcd5
parentf174ca3ce5dfe338b79f52de46f127abf1c3aca1 (diff)
parent3e037d40de2a68b99aa4600f060eab3555f75832 (diff)
downloadpx4-firmware-0869e24e6e02ce64b818eae6b6ac88760694b710.tar.gz
px4-firmware-0869e24e6e02ce64b818eae6b6ac88760694b710.tar.bz2
px4-firmware-0869e24e6e02ce64b818eae6b6ac88760694b710.zip
Merge pull request #557 from PX4/custom_io_scale
Custom io scale
-rw-r--r--src/drivers/px4io/px4io.cpp16
-rw-r--r--src/modules/sensors/sensor_params.c1
2 files changed, 17 insertions, 0 deletions
diff --git a/src/drivers/px4io/px4io.cpp b/src/drivers/px4io/px4io.cpp
index 9e84bf929..a7f7fce45 100644
--- a/src/drivers/px4io/px4io.cpp
+++ b/src/drivers/px4io/px4io.cpp
@@ -896,7 +896,23 @@ 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;
+
+ /* set battery voltage scaling */
+ param_get(voltage_scaling_param = param_find("BAT_V_SCALE_IO"), &voltage_scaling_val);
+
+ /* send scaling voltage 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