diff --git a/chip/basic/clock.cpp b/chip/basic/clock.cpp index 452294e..9f04344 100644 --- a/chip/basic/clock.cpp +++ b/chip/basic/clock.cpp @@ -51,4 +51,17 @@ void zchip_clock_early_delayus(uint32_t n) { __zchip_clock_early_delayus(1000); } } -} \ No newline at end of file +} + +void zchip_clock_early_delayus2(uint32_t us) { __zchip_clock_early_delayus(us); } +void zchip_clock_early_delayus_timer_start() { + __HAL_TIM_SET_COUNTER(m_usdleaytim, 0); + HAL_TIM_Base_Start(m_usdleaytim); +} +uint32_t zchip_clock_early_delayus_timer_haspassed() { + uint32_t counter = __HAL_TIM_GET_COUNTER(m_usdleaytim); + return counter; +} +void zchip_clock_early_delayus_timer_stop(){ + HAL_TIM_Base_Stop(m_usdleaytim); +} diff --git a/chip/basic/clock.hpp b/chip/basic/clock.hpp index 8816d9f..1b9e912 100644 --- a/chip/basic/clock.hpp +++ b/chip/basic/clock.hpp @@ -16,4 +16,8 @@ uint32_t zchip_clock_init(zchip_clock_cfg_t* cfg); uint32_t zchip_clock_get_ticket(void); uint32_t zchip_clock_hasspassed(uint32_t ticket); void zchip_clock_early_delayus(uint32_t us); +void zchip_clock_early_delayus2(uint32_t us); +void zchip_clock_early_delayus_timer_start(); +uint32_t zchip_clock_early_delayus_timer_haspassed(); +void zchip_clock_early_delayus_timer_stop(); }