Hi,
I have studied baro_bmp.c trying to find the reason why
readings from
the BMP085 sensor seems to wander in steps of up to +/-
0.5 hPa
around “center”. This amounts to approx +/- 4m at sea
level. No luck so far, however.
The program selects a high resolution
setting of the sensor. As far as the BMP085 datasheet goes
I would
expect values in the SENSOR_SYNC_SEND message to have a
higher
resolution. I want to look more at this, but a few
questions
arise.
In
.../var/<my_aircraft>/generated/modules.h there is
this code:
…..
static inline void modules_init(void) {
baro_bmp_init();
}
static inline void
modules_periodic_task(void) {
static uint8_t i7; i7++; if (i7>=7)
i7=0;
if (i7 == 0) {
baro_bmp_periodic();
}
}
static inline void
modules_event_task(void) {
baro_bmp_event();
}
…..
I suppose this code is based
on
.../conf/modules/baro_bmp.xml. But what is the effect
of i7 and how/where is it generated?
It looks to me as if
baro_bmp_event() is run 8 times as often as
baro_bmp_periodic(). Is this correct?
Could someone please explain
a little
about this?
Thanks for any help,
Helge.