/* USER CODE BEGIN Header */
/**
  ******************************************************************************
  * @file           : hal_delay.h
  * @brief          : Delay hardware abstraction layer header file
  ******************************************************************************
  */
/* USER CODE END Header */

#ifndef HAL_DELAY_H
#define HAL_DELAY_H

#include <stdint.h>

/**
 * @brief Initialize delay module
 */
void hal_delay_init(void);

/**
 * @brief Delay in milliseconds
 * @param ms: Delay time in milliseconds
 */
void hal_delay_ms(uint32_t ms);

/**
 * @brief Delay in microseconds
 * @param us: Delay time in microseconds
 */
void hal_delay_us(uint32_t us);

/**
 * @brief Get current system tick count in milliseconds
 * @return Current tick count in milliseconds
 */
uint32_t hal_get_tick(void);

#endif /* HAL_DELAY_H */
