Path: blob/master/libraries/AP_Baro/AP_Baro_FBM320.h
9871 views
#pragma once12#include "AP_Baro_Backend.h"34#if AP_BARO_FBM320_ENABLED56#include <AP_HAL/AP_HAL.h>7#include <AP_HAL/Device.h>89#ifndef HAL_BARO_FBM320_I2C_ADDR10#define HAL_BARO_FBM320_I2C_ADDR 0x6C11#endif12#ifndef HAL_BARO_FBM320_I2C_ADDR213#define HAL_BARO_FBM320_I2C_ADDR2 0x6D14#endif151617class AP_Baro_FBM320 : public AP_Baro_Backend {18public:19AP_Baro_FBM320(AP_Baro &baro, AP_HAL::Device &dev);2021/* AP_Baro public interface: */22void update() override;2324static AP_Baro_Backend *probe(AP_Baro &baro, AP_HAL::Device &dev);2526private:27bool init(void);28bool read_calibration(void);29void timer(void);30void calculate_PT(int32_t UT, int32_t UP, int32_t &pressure, int32_t &temperature);3132AP_HAL::Device *dev;3334uint8_t instance;3536uint32_t count;37float pressure_sum;38float temperature_sum;39uint8_t step;4041int32_t value_T;4243// Internal calibration registers44struct fbm320_calibration {45uint16_t C0, C1, C2, C3, C6, C8, C9, C10, C11, C12;46uint32_t C4, C5, C7;47} calibration;48};4950#endif // AP_BARO_FBM320_ENABLED515253