|
楼主 |
发表于 2015-2-5 10:50:18
|
显示全部楼层
我看了国外PX4的程序,有些看不明白,那个上面的传感器是精量的MS4525DO,量程1PSI,他的程序处理很奇怪,
void AP_Airspeed_I2C::_collect(void)
{
uint8_t data[4];
_measurement_started_ms = 0;
if (hal.i2c->read(I2C_ADDRESS_MS4525DO, 4, data) != 0) {
return;
}
uint8_t status = data[0] & 0xC0;
if (status == 2) {
return;
} else if (status == 3) {
return;
}
int16_t dp_raw, dT_raw;
dp_raw = (data[0] << 8) + data[1];
dp_raw = 0x3FFF & dp_raw;
dT_raw = (data[2] << 8) + data[3];
dT_raw = (0xFFE0 & dT_raw) >> 5;
_temperature = ((200 * dT_raw) / 2047) - 50;
_pressure = fabs(dp_raw - (16384 / 2.0f));
_last_sample_time_ms = hal.scheduler->millis();
}
附件是MS4525DO的资料和例程,感觉在压差算法那里完全对不上。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|