From 735f8ffa3d47bcdab1f85f8431928e1bdf3cccec Mon Sep 17 00:00:00 2001 From: px4dev Date: Tue, 14 Aug 2012 00:07:19 -0700 Subject: [PATCH] Config tweaks to enable the new-style ms5611 driver. --- apps/drivers/ms5611/ms5611.cpp | 20 ++++++++++++++------ nuttx/configs/px4fmu/nsh/appconfig | 2 +- nuttx/configs/px4fmu/nsh/defconfig | 8 ++++---- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/apps/drivers/ms5611/ms5611.cpp b/apps/drivers/ms5611/ms5611.cpp index 1f75ceb4bc..6c6951d9b5 100644 --- a/apps/drivers/ms5611/ms5611.cpp +++ b/apps/drivers/ms5611/ms5611.cpp @@ -58,6 +58,8 @@ #include +#include + #include /** @@ -123,13 +125,15 @@ private: int32_t _dT; int64_t _temp64; - int _orbject; + int _baro_topic; unsigned _reads; unsigned _measure_errors; unsigned _read_errors; unsigned _buf_overflows; + perf_counter_t _sample_perf; + /** * Test whether the device supported by the driver is present at a * specific address. @@ -245,7 +249,8 @@ MS5611::MS5611(int bus) : _reads(0), _measure_errors(0), _read_errors(0), - _buf_overflows(0) + _buf_overflows(0), + _sample_perf(perf_alloc(PC_ELAPSED, "ms5611_read")) { // enable debug() calls _debug_enabled = true; @@ -278,9 +283,9 @@ MS5611::init() /* if this fails (e.g. no object in the system) that's OK */ memset(&b, 0, sizeof(b)); - _orbject = orb_advertise(ORB_ID(sensor_baro), &b); + _baro_topic = orb_advertise(ORB_ID(sensor_baro), &b); - if (_orbject < 0) + if (_baro_topic < 0) debug("failed to create sensor_baro object"); } @@ -610,6 +615,8 @@ MS5611::collect() /* read the most recent measurement */ cmd = 0; + perf_begin(_sample_perf); + /* this should be fairly close to the end of the conversion, so the best approximation of the time */ _reports[_next_report].timestamp = hrt_absolute_time(); @@ -655,7 +662,7 @@ MS5611::collect() _reports[_next_report].altitude = (44330.0 * (1.0 - pow((press_int64 / 101325.0), 0.190295))); /* publish it */ - orb_publish(ORB_ID(sensor_baro), _orbject, &_reports[_next_report]); + orb_publish(ORB_ID(sensor_baro), _baro_topic, &_reports[_next_report]); /* post a report to the ring - note, not locked */ INCREMENT(_next_report, _num_reports); @@ -670,10 +677,11 @@ MS5611::collect() poll_notify(POLLIN); } - /* update the measurement state machine */ INCREMENT(_measure_phase, MS5611_MEASUREMENT_RATIO + 1); + perf_end(_sample_perf); + return OK; } diff --git a/nuttx/configs/px4fmu/nsh/appconfig b/nuttx/configs/px4fmu/nsh/appconfig index 2d015bd363..36db854e3b 100644 --- a/nuttx/configs/px4fmu/nsh/appconfig +++ b/nuttx/configs/px4fmu/nsh/appconfig @@ -75,7 +75,7 @@ CONFIGURED_APPS += attitude_estimator_ekf # Communication and Drivers CONFIGURED_APPS += drivers/device -#CONFIGURED_APPS += drivers/ms5611 +CONFIGURED_APPS += drivers/ms5611 CONFIGURED_APPS += drivers/mpu6000 CONFIGURED_APPS += px4/px4io/driver CONFIGURED_APPS += px4/fmu diff --git a/nuttx/configs/px4fmu/nsh/defconfig b/nuttx/configs/px4fmu/nsh/defconfig index 58c9ca45cd..a87ce7ffac 100755 --- a/nuttx/configs/px4fmu/nsh/defconfig +++ b/nuttx/configs/px4fmu/nsh/defconfig @@ -537,10 +537,10 @@ CONFIG_SEM_NNESTPRIO=8 CONFIG_FDCLONE_DISABLE=n CONFIG_FDCLONE_STDIO=y CONFIG_SDCLONE_DISABLE=y -CONFIG_SCHED_WORKQUEUE=n -CONFIG_SCHED_WORKPRIORITY=50 -CONFIG_SCHED_WORKPERIOD=(50*1000) -CONFIG_SCHED_WORKSTACKSIZE=1024 +CONFIG_SCHED_WORKQUEUE=y +CONFIG_SCHED_WORKPRIORITY=199 +CONFIG_SCHED_WORKPERIOD=(5*1000) +CONFIG_SCHED_WORKSTACKSIZE=2048 CONFIG_SIG_SIGWORK=4 CONFIG_SCHED_WAITPID=y CONFIG_SCHED_ATEXIT=n