You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

33 lines
749 B

#include "delay.h"
#include <stdint.h>
static TIM_HandleTypeDef *m_dhtim;
void chip_delay_init(TIM_HandleTypeDef *htim) { m_dhtim = htim; }
void chip_delay_us(uint32_t n) {
uint16_t counter = 0;
__HAL_TIM_SET_COUNTER(m_dhtim, 0);
HAL_TIM_Base_Start(m_dhtim);
while (counter < n) {
counter = __HAL_TIM_GET_COUNTER(m_dhtim);
}
HAL_TIM_Base_Stop(m_dhtim);
}
void chip_delay_ms(uint32_t n) {
uint32_t i;
for (i = 0; i < n; i++) {
chip_delay_us(1000);
}
}
uint32_t chip_get_ticket() {
uint32_t ticket = HAL_GetTick();
return ticket;
}
uint32_t haspassedms(uint32_t ticket) {
uint32_t nowticket = HAL_GetTick();
if (nowticket >= ticket) {
return nowticket - ticket;
}
return UINT32_MAX - ticket + nowticket;
}