Added two new functions performing a precise blocking delay in micro and milli seconds
This commit is contained in:
parent
338c7e18e6
commit
f5b68838f7
@ -10,4 +10,46 @@ uint32_t millis(void)
|
||||
void millis_run_cb(void *arg)
|
||||
{
|
||||
millis_cnt++;
|
||||
}
|
||||
|
||||
void us_delay(uint32_t us)
|
||||
{
|
||||
struct tls_timer_cfg timer_config =
|
||||
{
|
||||
.is_repeat = false,
|
||||
.unit = TLS_TIMER_UNIT_US,
|
||||
.timeout = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
uint8_t timer_id = tls_timer_create(&timer_config);
|
||||
|
||||
if(WM_TIMER_ID_INVALID == timer_id) return;
|
||||
|
||||
tls_timer_start(timer_id);
|
||||
|
||||
// Perform a blocking delay
|
||||
while(tls_timer_read(timer_id) < us);
|
||||
|
||||
tls_timer_destroy(timer_id);
|
||||
}
|
||||
|
||||
void ms_delay(uint32_t ms)
|
||||
{
|
||||
struct tls_timer_cfg timer_config =
|
||||
{
|
||||
.is_repeat = false,
|
||||
.unit = TLS_TIMER_UNIT_MS,
|
||||
.timeout = 0xFFFFFFFF,
|
||||
};
|
||||
|
||||
uint8_t timer_id = tls_timer_create(&timer_config);
|
||||
|
||||
if(WM_TIMER_ID_INVALID == timer_id) return;
|
||||
|
||||
tls_timer_start(timer_id);
|
||||
|
||||
// Perform a blocking delay
|
||||
while(tls_timer_read(timer_id) < ms);
|
||||
|
||||
tls_timer_destroy(timer_id);
|
||||
}
|
@ -7,4 +7,8 @@ uint32_t millis(void);
|
||||
|
||||
void millis_run_cb(void *arg);
|
||||
|
||||
void us_delay(uint32_t us);
|
||||
|
||||
void ms_delay(uint32_t ms);
|
||||
|
||||
#endif //APP_UTILS_H
|
Loading…
Reference in New Issue
Block a user