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