unix: Make mp_hal_delay_ms run MICROPY_EVENT_POLL_HOOK.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
parent
de60aa7d6b
commit
4559bcb467
@ -64,11 +64,6 @@ static inline int mp_hal_readline(vstr_t *vstr, const char *p) {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO: POSIX et al. define usleep() as guaranteedly capable only of 1s sleep:
|
|
||||||
// "The useconds argument shall be less than one million."
|
|
||||||
static inline void mp_hal_delay_ms(mp_uint_t ms) {
|
|
||||||
usleep((ms) * 1000);
|
|
||||||
}
|
|
||||||
static inline void mp_hal_delay_us(mp_uint_t us) {
|
static inline void mp_hal_delay_us(mp_uint_t us) {
|
||||||
usleep(us);
|
usleep(us);
|
||||||
}
|
}
|
||||||
|
@ -220,3 +220,17 @@ uint64_t mp_hal_time_ns(void) {
|
|||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
return (uint64_t)tv.tv_sec * 1000000000ULL + (uint64_t)tv.tv_usec * 1000ULL;
|
return (uint64_t)tv.tv_sec * 1000000000ULL + (uint64_t)tv.tv_usec * 1000ULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mp_hal_delay_ms(mp_uint_t ms) {
|
||||||
|
#ifdef MICROPY_EVENT_POLL_HOOK
|
||||||
|
mp_uint_t start = mp_hal_ticks_ms();
|
||||||
|
while (mp_hal_ticks_ms() - start < ms) {
|
||||||
|
// MICROPY_EVENT_POLL_HOOK does mp_hal_delay_us(500) (i.e. usleep(500)).
|
||||||
|
MICROPY_EVENT_POLL_HOOK
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
// TODO: POSIX et al. define usleep() as guaranteedly capable only of 1s sleep:
|
||||||
|
// "The useconds argument shall be less than one million."
|
||||||
|
usleep(ms * 1000);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@ -261,3 +261,9 @@ uint64_t mp_hal_time_ns(void) {
|
|||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
return (uint64_t)tv.tv_sec * 1000000000ULL + (uint64_t)tv.tv_usec * 1000ULL;
|
return (uint64_t)tv.tv_sec * 1000000000ULL + (uint64_t)tv.tv_usec * 1000ULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: POSIX et al. define usleep() as guaranteedly capable only of 1s sleep:
|
||||||
|
// "The useconds argument shall be less than one million."
|
||||||
|
void mp_hal_delay_ms(mp_uint_t ms) {
|
||||||
|
usleep((ms) * 1000);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user