mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/sta-core.git
synced 2025-06-12 01:25:59 +00:00
Add HAL delay wrapper
This commit is contained in:
parent
9056cfc264
commit
073fe83e7e
40
include/sta/hal/delay.hpp
Normal file
40
include/sta/hal/delay.hpp
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/**
|
||||||
|
* @brief Delay functions.
|
||||||
|
*
|
||||||
|
* Configuration:
|
||||||
|
* STA_HAL_DELAY_ENABLE: Enable module
|
||||||
|
* STA_HAL_DELAY_US_TIM: HAL TIM instance for `delayUs()`
|
||||||
|
*
|
||||||
|
* NOTE: Don't forget to start TIM. When using startup system task this
|
||||||
|
* is automatically handled.
|
||||||
|
*/
|
||||||
|
#ifndef STA_HAL_DELAY_HPP
|
||||||
|
#define STA_HAL_DELAY_HPP
|
||||||
|
|
||||||
|
#include <sta/config.hpp>
|
||||||
|
#ifdef STA_HAL_DELAY_ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
namespace sta
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @brief Millisecond delay.
|
||||||
|
*
|
||||||
|
* @param ms Milliseconds
|
||||||
|
*/
|
||||||
|
void delayMs(uint32_t ms);
|
||||||
|
|
||||||
|
#ifdef STA_HAL_DELAY_US_TIM
|
||||||
|
/**
|
||||||
|
* @brief Microsecond delay.
|
||||||
|
*
|
||||||
|
* @param us Microseconds
|
||||||
|
*/
|
||||||
|
void delayUs(uint32_t us);
|
||||||
|
#endif // STA_HAL_DELAY_US_TIM
|
||||||
|
} // namespace sta
|
||||||
|
|
||||||
|
|
||||||
|
#endif // STA_HAL_DELAY_TIM
|
||||||
|
|
||||||
|
#endif // STA_HAL_DELAY_HPP
|
32
src/hal/delay.cpp
Normal file
32
src/hal/delay.cpp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
#include <sta/hal/delay.hpp>
|
||||||
|
#ifdef STA_HAL_DELAY_ENABLE
|
||||||
|
|
||||||
|
#include <main.h>
|
||||||
|
|
||||||
|
|
||||||
|
namespace sta
|
||||||
|
{
|
||||||
|
void delayMs(uint32_t ms)
|
||||||
|
{
|
||||||
|
HAL_Delay(ms);
|
||||||
|
}
|
||||||
|
} // namespace sta
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef STA_HAL_DELAY_US_TIM
|
||||||
|
|
||||||
|
#include <tim.h>
|
||||||
|
|
||||||
|
namespace sta
|
||||||
|
{
|
||||||
|
void delayUs(uint32_t us)
|
||||||
|
{
|
||||||
|
__HAL_TIM_SET_COUNTER(&STA_HAL_DELAY_US_TIM, 0);
|
||||||
|
while (__HAL_TIM_GET_COUNTER(&STA_HAL_DELAY_US_TIM) < us);
|
||||||
|
}
|
||||||
|
} // namespace sta
|
||||||
|
|
||||||
|
#endif // STA_HAL_DELAY_US_TIM
|
||||||
|
|
||||||
|
|
||||||
|
#endif // STA_HAL_DELAY_ENABLE
|
Loading…
x
Reference in New Issue
Block a user