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)
|
void millis_run_cb(void *arg)
|
||||||
{
|
{
|
||||||
millis_cnt++;
|
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 millis_run_cb(void *arg);
|
||||||
|
|
||||||
|
void us_delay(uint32_t us);
|
||||||
|
|
||||||
|
void ms_delay(uint32_t ms);
|
||||||
|
|
||||||
#endif //APP_UTILS_H
|
#endif //APP_UTILS_H
|
Loading…
Reference in New Issue
Block a user