diff options
author | Julian Oes <julian@oes.ch> | 2013-10-11 14:05:11 +0200 |
---|---|---|
committer | Julian Oes <julian@oes.ch> | 2013-10-11 14:05:11 +0200 |
commit | 2d23d5fd4ec3a00ae18c63304a3b1b3905d7de66 (patch) | |
tree | dfe21bf4ddd3b10e2e92cd3d6be206de5a445616 /src/modules/px4iofirmware/registers.c | |
parent | 326f241185f45d9e2d4377e8096a8a2f05f65b0d (diff) | |
parent | 1306c9de7b946783ff1143bb42a33734e9380e2c (diff) | |
download | px4-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/registers.c')
-rw-r--r-- | src/modules/px4iofirmware/registers.c | 30 |
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); |