SAM4SD32 (SAM4S-EK2)
Loading...
Searching...
No Matches
cycle_counter.h
Go to the documentation of this file.
1
33
/*
34
* Support and FAQ: visit <a href="https://www.microchip.com/support/">Microchip Support</a>
35
*/
36
#ifndef _cycle_counter_h_
37
#define _cycle_counter_h_
38
39
#ifdef __cplusplus
40
extern
"C"
{
41
#endif
42
43
44
#include <compiler.h>
45
77
86
void
portable_delay_cycles
(
unsigned
long
n);
87
88
/* Cortex-M7 is faster than Cortex-M3/M4/M0+ */
89
#ifdef __CM7_REV
90
91
# define cpu_ms_2_cy(ms, f_cpu) \
92
(((uint64_t)(ms) * (f_cpu) + (uint64_t)(5.932e3 - 1ul)) / (uint64_t)5.932e3)
93
# define cpu_us_2_cy(us, f_cpu) \
94
(((uint64_t)(us) * (f_cpu) + (uint64_t)(5.932e6 - 1ul)) / (uint64_t)5.932e6)
95
96
#else
97
98
# define cpu_ms_2_cy(ms, f_cpu) \
99
(((uint64_t)(ms) * (f_cpu) + (uint64_t)(14e3 - 1ul)) / (uint64_t)14e3)
100
# define cpu_us_2_cy(us, f_cpu) \
101
(((uint64_t)(us) * (f_cpu) + (uint64_t)(14e6 - 1ul)) / (uint64_t)14e6)
102
103
#endif
104
105
#define delay_cycles portable_delay_cycles
106
107
#define cpu_delay_ms(delay, f_cpu) delay_cycles(cpu_ms_2_cy(delay, f_cpu))
108
#define cpu_delay_us(delay, f_cpu) delay_cycles(cpu_us_2_cy(delay, f_cpu))
110
111
112
#ifdef __cplusplus
113
}
114
#endif
115
116
#endif
/* _cycle_counter_h_ */
portable_delay_cycles
void portable_delay_cycles(unsigned long n)
Delay loop to delay n number of cycles.
Definition
cycle_counter.c:42
common
services
delay
sam
cycle_counter.h
Generated by
1.16.1