Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    Strange dependency in function calling order in BMP280 driver

    Strange dependency in function calling order in BMP280 driver

    Jussi
    Member

    Consider this as issue to https://github.com/BoschSensortec/BMP280_driver

    This driver sets t_fine when calibrated temperature is calculated e.g. https://github.com/BoschSensortec/BMP280_driver/blob/master/bmp280.c#L485

    And this t_fine is then used to calculate calibrated pressure e.g. in here https://github.com/BoschSensortec/BMP280_driver/blob/master/bmp280.c#L510

    t_fine is not initialized inside the driver (nor it is initialized in the example usage either https://github.com/BoschSensortec/BMP280_driver/blob/master/examples/pressure.c#L18)

    This means that driver uses random data to calculate pressure if you don't have brains to initialize the struct correctly by yourself(guess if I fall into this gategory) or you don't call the *get_comp_temp* functions before calling  *get_comp_pressure*(yep, here too).

    IMHO:

    - Fix the example to initialize struct(dunno if 0 is then good value to t_fine?)

    -  Should the t_fine be calculated in here for example? https://github.com/BoschSensortec/BMP280_driver/blob/master/bmp280.c#L435

    1 REPLY 1

    o_o
    Contributor
    I don't believe it is required to initialize t_fine.

    With BMP280, pressure measurement must always be taken at the same time as a temperature measurement, and the temperature is used to compensate the pressure.

    The calling order is important, therefore I do not believe initialization would be a good idea.
    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist