diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2013-03-08 22:17:22 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-03-08 22:17:22 +0100 |
commit | a4318bd68c35bd5c0b0aa36584e9f08d7377da49 (patch) | |
tree | a7613980a29c89e7a3ac84b367bba607bb609223 /apps | |
parent | e8e52afcc426491f5959e6f879f26c9211a88d4c (diff) | |
parent | 87ea7096fd481fde0f0a946366a5b9ff8b5dc638 (diff) | |
download | px4-firmware-a4318bd68c35bd5c0b0aa36584e9f08d7377da49.tar.gz px4-firmware-a4318bd68c35bd5c0b0aa36584e9f08d7377da49.tar.bz2 px4-firmware-a4318bd68c35bd5c0b0aa36584e9f08d7377da49.zip |
Merge branch 'master' of github.com:PX4/Firmware into px4io-i2c
Diffstat (limited to 'apps')
-rw-r--r-- | apps/sdlog/sdlog.c | 2 | ||||
-rw-r--r-- | apps/sdlog/sdlog_ringbuffer.h | 4 | ||||
-rw-r--r-- | apps/sensors/sensors.cpp | 8 |
3 files changed, 9 insertions, 5 deletions
diff --git a/apps/sdlog/sdlog.c b/apps/sdlog/sdlog.c index 4fd5fea1b..df8745d9f 100644 --- a/apps/sdlog/sdlog.c +++ b/apps/sdlog/sdlog.c @@ -683,7 +683,7 @@ int sdlog_thread_main(int argc, char *argv[]) .vbat = buf.batt.voltage_v, .bat_current = buf.batt.current_a, .bat_discharged = buf.batt.discharged_mah, - .adc = {buf.raw.adc_voltage_v[0], buf.raw.adc_voltage_v[1], buf.raw.adc_voltage_v[2]}, + .adc = {buf.raw.adc_voltage_v[0], buf.raw.adc_voltage_v[1], buf.raw.adc_voltage_v[2], buf.raw.adc_voltage_v[3]}, .local_position = {buf.local_pos.x, buf.local_pos.y, buf.local_pos.z}, .gps_raw_position = {buf.gps_pos.lat, buf.gps_pos.lon, buf.gps_pos.alt}, .attitude = {buf.att.pitch, buf.att.roll, buf.att.yaw}, diff --git a/apps/sdlog/sdlog_ringbuffer.h b/apps/sdlog/sdlog_ringbuffer.h index f7fc0d450..b65916459 100644 --- a/apps/sdlog/sdlog_ringbuffer.h +++ b/apps/sdlog/sdlog_ringbuffer.h @@ -56,7 +56,7 @@ struct sdlog_sysvector { float vbat; /**< battery voltage in [volt] */ float bat_current; /**< battery discharge current */ float bat_discharged; /**< discharged energy in mAh */ - float adc[3]; /**< remaining auxiliary ADC ports [volt] */ + float adc[4]; /**< ADC ports [volt] */ float local_position[3]; /**< tangent plane mapping into x,y,z [m] */ int32_t gps_raw_position[3]; /**< latitude [degrees] north, longitude [degrees] east, altitude above MSL [millimeter] */ float attitude[3]; /**< roll, pitch, yaw [rad] */ @@ -88,4 +88,4 @@ void sdlog_logbuffer_write(struct sdlog_logbuffer *lb, const struct sdlog_sysvec int sdlog_logbuffer_read(struct sdlog_logbuffer *lb, struct sdlog_sysvector *elem); -#endif
\ No newline at end of file +#endif diff --git a/apps/sensors/sensors.cpp b/apps/sensors/sensors.cpp index 8d04e6ad6..d725c7727 100644 --- a/apps/sensors/sensors.cpp +++ b/apps/sensors/sensors.cpp @@ -998,12 +998,16 @@ Sensors::adc_poll(struct sensor_combined_s &raw) /* read all channels available */ int ret = read(_fd_adc, &buf_adc, sizeof(buf_adc)); - /* look for battery channel */ - for (unsigned i = 0; i < sizeof(buf_adc) / sizeof(buf_adc[0]); i++) { if (ret >= (int)sizeof(buf_adc[0])) { + /* Save raw voltage values */ + if (i < (sizeof(raw.adc_voltage_v)) / sizeof(raw.adc_voltage_v[0])) { + raw.adc_voltage_v[i] = buf_adc[i].am_data / (4096.0f / 3.3f); + } + + /* look for specific channels and process the raw voltage to measurement data */ if (ADC_BATTERY_VOLTAGE_CHANNEL == buf_adc[i].am_channel) { /* Voltage in volts */ float voltage = (buf_adc[i].am_data * _parameters.battery_voltage_scaling); |