aboutsummaryrefslogtreecommitdiff
path: root/src/modules/px4iofirmware/registers.c
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-07-26 15:16:48 +0200
committerLorenz Meier <lm@inf.ethz.ch>2013-07-26 15:16:48 +0200
commitdd3033fa6fa8ea4b84582065ed9c92828d7c5f81 (patch)
treeebb852713e96e9ca9c5cd68ec053da028302e652 /src/modules/px4iofirmware/registers.c
parent31ded04c80f68bd071840770d49eb93d2d9c9fe2 (diff)
downloadpx4-firmware-dd3033fa6fa8ea4b84582065ed9c92828d7c5f81.tar.gz
px4-firmware-dd3033fa6fa8ea4b84582065ed9c92828d7c5f81.tar.bz2
px4-firmware-dd3033fa6fa8ea4b84582065ed9c92828d7c5f81.zip
Symbol cleanup for servo vs. battery voltage
Diffstat (limited to 'src/modules/px4iofirmware/registers.c')
-rw-r--r--src/modules/px4iofirmware/registers.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c
index 9606faa86..3f241d29c 100644
--- a/src/modules/px4iofirmware/registers.c
+++ b/src/modules/px4iofirmware/registers.c
@@ -146,7 +146,11 @@ volatile uint16_t r_page_setup[] =
[PX4IO_P_SETUP_PWM_DEFAULTRATE] = 50,
[PX4IO_P_SETUP_PWM_ALTRATE] = 200,
[PX4IO_P_SETUP_RELAYS] = 0,
+#ifdef ADC_VSERVO
+ [PX4IO_P_SETUP_VSERVO_SCALE] = 10000,
+#else
[PX4IO_P_SETUP_VBATT_SCALE] = 10000,
+#endif
[PX4IO_P_SETUP_SET_DEBUG] = 0,
};
@@ -570,29 +574,17 @@ registers_get(uint8_t page, uint8_t offset, uint16_t **values, unsigned *num_val
* Coefficients here derived by measurement of the 5-16V
* range on one unit:
*
- * V counts
- * 5 1001
- * 6 1219
- * 7 1436
- * 8 1653
- * 9 1870
- * 10 2086
- * 11 2303
- * 12 2522
- * 13 2738
- * 14 2956
- * 15 3172
- * 16 3389
+ * XXX pending measurements
*
- * slope = 0.0046067
- * intercept = 0.3863
+ * slope = xxx
+ * intercept = xxx
*
- * Intercept corrected for best results @ 12V.
+ * Intercept corrected for best results @ 5.0V.
*/
unsigned counts = adc_measure(ADC_VSERVO);
if (counts != 0xffff) {
unsigned mV = (4150 + (counts * 46)) / 10 - 200;
- unsigned corrected = (mV * r_page_setup[PX4IO_P_SETUP_VBATT_SCALE]) / 10000;
+ unsigned corrected = (mV * r_page_setup[PX4IO_P_SETUP_VSERVO_SCALE]) / 10000;
r_page_status[PX4IO_P_STATUS_VSERVO] = corrected;
}