// #include "zdelay.h" // // #include "zbase.h" // #include "project_configs.h" // // extern TIM_HandleTypeDef SDK_DELAY_US_TIMER; // // static HAL_StatusTypeDef _HAL_TIM_Base_Start(TIM_HandleTypeDef* htim) __attribute__((optimize("O2"))); // static HAL_StatusTypeDef _HAL_TIM_Base_Stop(TIM_HandleTypeDef* htim) __attribute__((optimize("O2"))); // static HAL_StatusTypeDef _HAL_TIM_Base_Start(TIM_HandleTypeDef* htim) { // uint32_t tmpsmcr; // /* Check the TIM state */ // if (htim->State != HAL_TIM_STATE_READY) { // return HAL_ERROR; // } // htim->State = HAL_TIM_STATE_BUSY; // if (IS_TIM_SLAVE_INSTANCE(htim->Instance)) { // tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS; // if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr)) { // __HAL_TIM_ENABLE(htim); // } // } else { // __HAL_TIM_ENABLE(htim); // } // return HAL_OK; // } // static HAL_StatusTypeDef _HAL_TIM_Base_Stop(TIM_HandleTypeDef* htim) { // /* Disable the Peripheral */ // __HAL_TIM_DISABLE(htim); // /* Set the TIM state */ // htim->State = HAL_TIM_STATE_READY; // /* Return function status */ // return HAL_OK; // } // // void zdelay_us(int var_nus) { // volatile uint32_t counter = 0; // __HAL_TIM_SET_COUNTER(&SDK_DELAY_US_TIMER, 0); // _HAL_TIM_Base_Start(&SDK_DELAY_US_TIMER); // while (counter < var_nus) { // counter = __HAL_TIM_GET_COUNTER(&SDK_DELAY_US_TIMER); // } // _HAL_TIM_Base_Stop(&SDK_DELAY_US_TIMER); // } // void zdelay_ms(int ms) { // for (int i = 0; i < ms; i++) { // zdelay_us(1000); // } // } // void zos_delay_ms(int ms) { osDelay(ms); } // // uint32_t zget_ticket(void) { return HAL_GetTick(); } // // uint32_t zhas_passedms(uint32_t ticket) { // uint32_t now = HAL_GetTick(); // if (now >= ticket) { // return now - ticket; // } else { // return 0xFFFFFFFF - ticket + now; // } // }