delay: call yield()

This commit is contained in:
Daniel Fekete 2017-06-25 11:44:22 +02:00
parent 1611d28ecf
commit 79efdb1863
1 changed files with 8 additions and 2 deletions

View File

@ -35,7 +35,11 @@ extern "C"{
#endif
inline void delay(unsigned long millis) {
HAL_Delay(millis);
uint32_t tickstart = 0;
tickstart = HAL_GetTick();
while((HAL_GetTick() - tickstart) < millis) {
yield();
}
}
inline uint32_t millis() {
@ -59,7 +63,9 @@ inline uint32_t micros() {
inline void delayMicroseconds(uint32_t microseconds){
uint32_t start = micros();
while(start + microseconds > micros());
while(start + microseconds > micros()) {
yield();
}
}
#ifdef __cplusplus