aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2013-02-19 14:45:45 +1100
committerAndrew Tridgell <tridge@samba.org>2013-02-19 14:45:45 +1100
commite896944adcce3d0d5e333186a76b35850e5f9bc9 (patch)
treefd46243c7d023e30ffbe207536bfb5982a7d59fb /apps
parent4a15eef602528bb79a62838e033be989e5fa2b3f (diff)
downloadpx4-firmware-e896944adcce3d0d5e333186a76b35850e5f9bc9.tar.gz
px4-firmware-e896944adcce3d0d5e333186a76b35850e5f9bc9.tar.bz2
px4-firmware-e896944adcce3d0d5e333186a76b35850e5f9bc9.zip
ms5611: try to measure the performance cost of I2C timeouts
Diffstat (limited to 'apps')
-rw-r--r--apps/drivers/ms5611/ms5611.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/apps/drivers/ms5611/ms5611.cpp b/apps/drivers/ms5611/ms5611.cpp
index 30166828a..44014d969 100644
--- a/apps/drivers/ms5611/ms5611.cpp
+++ b/apps/drivers/ms5611/ms5611.cpp
@@ -144,6 +144,7 @@ private:
orb_advert_t _baro_topic;
perf_counter_t _sample_perf;
+ perf_counter_t _measure_perf;
perf_counter_t _comms_errors;
perf_counter_t _buffer_overflows;
@@ -274,6 +275,7 @@ MS5611::MS5611(int bus) :
_msl_pressure(101325),
_baro_topic(-1),
_sample_perf(perf_alloc(PC_ELAPSED, "ms5611_read")),
+ _measure_perf(perf_alloc(PC_ELAPSED, "ms5611_measure")),
_comms_errors(perf_alloc(PC_COUNT, "ms5611_comms_errors")),
_buffer_overflows(perf_alloc(PC_COUNT, "ms5611_buffer_overflows"))
{
@@ -647,6 +649,8 @@ MS5611::measure()
{
int ret;
+ perf_begin(_measure_perf);
+
/*
* In phase zero, request temperature; in other phases, request pressure.
*/
@@ -664,6 +668,8 @@ MS5611::measure()
if (OK != ret)
perf_count(_comms_errors);
+ perf_end(_measure_perf);
+
return ret;
}
@@ -689,6 +695,7 @@ MS5611::collect()
ret = transfer(&cmd, 1, &data[0], 3);
if (ret != OK) {
perf_count(_comms_errors);
+ perf_end(_sample_perf);
return ret;
}