mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			Fixed arithmetic error in rtos-based wait
The value of `start` is taken from before that wait call, so the value of `us` shouldn't be changedpull/3202/head
							parent
							
								
									f044786f22
								
							
						
					
					
						commit
						4d6afcddfa
					
				| 
						 | 
				
			
			@ -37,13 +37,10 @@ void wait_us(int us) {
 | 
			
		|||
    int ms = us / 1000;
 | 
			
		||||
    if ((ms > 0) && core_util_are_interrupts_enabled()) {
 | 
			
		||||
        Thread::wait((uint32_t)ms);
 | 
			
		||||
        us -= ms * 1000;
 | 
			
		||||
    }
 | 
			
		||||
    // Use busy waiting for sub-millisecond delays, or for the whole
 | 
			
		||||
    // interval if interrupts are not enabled
 | 
			
		||||
    if (us > 0) {
 | 
			
		||||
        while((us_ticker_read() - start) < (uint32_t)us);
 | 
			
		||||
    }
 | 
			
		||||
    while ((us_ticker_read() - start) < (uint32_t)us);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // #if MBED_CONF_RTOS_PRESENT
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue