aboutsummaryrefslogtreecommitdiff
path: root/src/modules/px4iofirmware
diff options
context:
space:
mode:
authorJulian Oes <julian@oes.ch>2013-10-11 14:05:11 +0200
committerJulian Oes <julian@oes.ch>2013-10-11 14:05:11 +0200
commit2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66 (patch)
treedfe21bf4ddd3b10e2e92cd3d6be206de5a445616 /src/modules/px4iofirmware
parent326f241185f45d9e2d4377e8096a8a2f05f65b0d (diff)
parent1306c9de7b946783ff1143bb42a33734e9380e2c (diff)
downloadpx4-firmware-2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66.tar.gz
px4-firmware-2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66.tar.bz2
px4-firmware-2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66.zip
Merge remote-tracking branch 'px4/master' into pwm_ioctls
Conflicts: src/drivers/px4io/px4io.cpp
Diffstat (limited to 'src/modules/px4iofirmware')
-rw-r--r--src/modules/px4iofirmware/registers.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/src/modules/px4iofirmware/registers.c b/src/modules/px4iofirmware/registers.c
index 30e6f7de2..a338afe16 100644
--- a/src/modules/px4iofirmware/registers.c
+++ b/src/modules/px4iofirmware/registers.c
@@ -671,27 +671,25 @@ registers_get(uint8_t page, uint8_t offset, uint16_t **values, unsigned *num_val
#ifdef ADC_VSERVO
/* PX4IO_P_STATUS_VSERVO */
{
- /*
- * Coefficients here derived by measurement of the 5-16V
- * range on one unit:
- *
- * XXX pending measurements
- *
- * slope = xxx
- * intercept = xxx
- *
- * 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_VSERVO_SCALE]) / 10000;
-
- r_page_status[PX4IO_P_STATUS_VSERVO] = corrected;
+ // use 3:1 scaling on 3.3V ADC input
+ unsigned mV = counts * 9900 / 4096;
+ r_page_status[PX4IO_P_STATUS_VSERVO] = mV;
+ }
+ }
+#endif
+#ifdef ADC_RSSI
+ /* PX4IO_P_STATUS_VRSSI */
+ {
+ unsigned counts = adc_measure(ADC_RSSI);
+ if (counts != 0xffff) {
+ // use 1:1 scaling on 3.3V ADC input
+ unsigned mV = counts * 3300 / 4096;
+ r_page_status[PX4IO_P_STATUS_VRSSI] = mV;
}
}
#endif
- /* XXX PX4IO_P_STATUS_VRSSI */
/* XXX PX4IO_P_STATUS_PRSSI */
SELECT_PAGE(r_page_status);