Improved logic in wait_us to avoid division operation in sub-millisec case

pull/7631/head
Senthil Ramakrishnan 2018-07-23 11:07:17 -05:00 committed by Cruz Monrreal II
parent 93340828ae
commit 101cade4e3
1 changed files with 3 additions and 4 deletions

View File

@ -39,11 +39,10 @@ void wait_us(int us)
const ticker_data_t *const ticker = get_us_ticker_data();
uint32_t start = ticker_read(ticker);
// Use the RTOS to wait for millisecond delays if possible
int ms = us / 1000;
if ((ms > 0) && core_util_are_interrupts_enabled()) {
if ((us >= 1000) && core_util_are_interrupts_enabled()) {
// Use the RTOS to wait for millisecond delays if possible
sleep_manager_lock_deep_sleep();
Thread::wait((uint32_t)ms);
Thread::wait((uint32_t)us / 1000);
sleep_manager_unlock_deep_sleep();
}
// Use busy waiting for sub-millisecond delays, or for the whole