delay: call yield()
This commit is contained in:
parent
1611d28ecf
commit
79efdb1863
|
@ -35,7 +35,11 @@ extern "C"{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline void delay(unsigned long millis) {
|
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() {
|
inline uint32_t millis() {
|
||||||
|
@ -59,7 +63,9 @@ inline uint32_t micros() {
|
||||||
inline void delayMicroseconds(uint32_t microseconds){
|
inline void delayMicroseconds(uint32_t microseconds){
|
||||||
uint32_t start = micros();
|
uint32_t start = micros();
|
||||||
|
|
||||||
while(start + microseconds > micros());
|
while(start + microseconds > micros()) {
|
||||||
|
yield();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in New Issue