altos: Megametrum ADC values are 12 bits, discard low 4 for telemetry
authorKeith Packard <keithp@keithp.com>
Wed, 18 Jul 2012 03:44:55 +0000 (20:44 -0700)
committerKeith Packard <keithp@keithp.com>
Wed, 18 Jul 2012 03:44:55 +0000 (20:44 -0700)
We've only got space for 8 bits for the ADC values for pyro channels,
discard the low 4 bits instead of the low 8 bits.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/core/ao_telemetry.c

index 583a6636668fe764c0de48727e29a06056f3562f..52ac94891adebd99f915cf97a20e95ddf171a18c 100644 (file)
@@ -138,9 +138,9 @@ ao_send_mega_data(void)
                telemetry.mega_data.v_batt = packet->adc.v_batt;
                telemetry.mega_data.v_pyro = packet->adc.v_pbatt;
 
-               /* XXX figure out right shift value; 4 might suffice */
+               /* ADC range is 0-4095, so shift by four to save the high 8 bits */
                for (i = 0; i < AO_ADC_NUM_SENSE; i++)
-                       telemetry.mega_data.sense[i] = packet->adc.sense[i] >> 8;
+                       telemetry.mega_data.sense[i] = packet->adc.sense[i] >> 4;
 
                telemetry.mega_data.ground_pres = ao_ground_pres;
                telemetry.mega_data.ground_accel = ao_ground_accel;