Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BME680 bsec library with Arduino IDE uses delay()?!?!?

    BME680 bsec library with Arduino IDE uses delay()?!?!?

    mgchristensen
    New Poster

    Use of delay() in Arduino code is universally considered bad practice.  The better approach is to test a duration in millis.

    Looking at the code in the provided libraries in BSEC_Arduino_Library, I note, in bsec.cpp, the function void Bsec::delay_us(uint32_t period, void *intfPtr).  This function uses delay().  The use of delay() in bsec.cpp interferes with the timing of code in loop() if a call is made to the run() method.

    Has anyone reimplemented bsec.cpp to avoid use of delay()?  I plan on doing so, but do not want to "reinvent the wheel" if I can avoid that.

    Thanks to all in advance.

     

    2 REPLIES 2

    BSTRobin
    Community Moderator
    Community Moderator

    Hi mgchristensen,

    In bsec.cpp, the delay_us() function has been adapted to the millisecond delay to microsecond delay of the delay() function.

    /**
    @brief Task that delays for a us period of time
    */
    void Bsec::delay_us(uint32_t period, void *intfPtr)
    {
    (void) intfPtr;
    // Wait for a period amount of ms
    // The system may simply idle, sleep or even perform background tasks
    delay(period/1000);
    }

    Thank you for your reply!  I clicked accept as solution in error, and my reply was dumped into the bit bucket.

    The line delay(period/1000); is precisely what the problem is.  I will post again with a better explanation.

    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