#include "cyc_cnt.h"
static volatile unsigned int *const cyc_cnt_ptr =
(volatile unsigned int *)0x80001000;
/**
* @brief read cycle counter
* @return cycle counter value
*/
unsigned int cyc_cnt_read(void)
{
return *cyc_cnt_ptr;
}
/**
* @brief delay for a number of cycles
* @param[in] cyc number of cycles
*/
void cyc_cnt_delay(unsigned int cyc)
{
unsigned int start = cyc_cnt_read();
while (cyc_cnt_read() - start < cyc)
/* wait */;
}
/**
* @brief delay for a number of microseconds
* @param[in] us number of microseconds
*/
void cyc_cnt_delay_us(unsigned int us)
{
cyc_cnt_delay(us * 50);
}
/**
* @brief delay for a number of milliseconds
* @param[in] ms number of milliseconds
*/
void cyc_cnt_delay_ms(unsigned int ms)
{
cyc_cnt_delay_us(ms * 1000);
}