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
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;
|
|
}
|