summaryrefslogtreecommitdiff
path: root/platforms
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2025-01-19 17:07:11 +0000
committerGitHub <noreply@github.com>2025-01-19 17:07:11 +0000
commitcedd49c59b5a822b6879485cdd412c7d803ae14a (patch)
tree6ccccbaf041fdfb9c101ee719a214a573b877f81 /platforms
parenta62f9a2ffd71376bc72e6c52eeab0798cdb8b52f (diff)
Consolidate timer_elapsed implementations (#24830)
Diffstat (limited to 'platforms')
-rw-r--r--platforms/avr/timer.c28
-rw-r--r--platforms/chibios/timer.c8
-rw-r--r--platforms/test/timer.c8
-rw-r--r--platforms/timer.c8
4 files changed, 8 insertions, 44 deletions
diff --git a/platforms/avr/timer.c b/platforms/avr/timer.c
index 26ba0e29fa..b2230ad84b 100644
--- a/platforms/avr/timer.c
+++ b/platforms/avr/timer.c
@@ -125,34 +125,6 @@ inline uint32_t timer_read32(void) {
125 return t; 125 return t;
126} 126}
127 127
128/** \brief timer elapsed
129 *
130 * FIXME: needs doc
131 */
132inline uint16_t timer_elapsed(uint16_t last) {
133 uint32_t t;
134
135 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
136 t = timer_count;
137 }
138
139 return TIMER_DIFF_16((t & 0xFFFF), last);
140}
141
142/** \brief timer elapsed32
143 *
144 * FIXME: needs doc
145 */
146inline uint32_t timer_elapsed32(uint32_t last) {
147 uint32_t t;
148
149 ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
150 t = timer_count;
151 }
152
153 return TIMER_DIFF_32(t, last);
154}
155
156// excecuted once per 1ms.(excess for just timer count?) 128// excecuted once per 1ms.(excess for just timer count?)
157#ifndef __AVR_ATmega32A__ 129#ifndef __AVR_ATmega32A__
158# define TIMER_INTERRUPT_VECTOR TIMER0_COMPA_vect 130# define TIMER_INTERRUPT_VECTOR TIMER0_COMPA_vect
diff --git a/platforms/chibios/timer.c b/platforms/chibios/timer.c
index a07cf5714f..9f7eade83f 100644
--- a/platforms/chibios/timer.c
+++ b/platforms/chibios/timer.c
@@ -118,11 +118,3 @@ uint32_t timer_read32(void) {
118 118
119 return (uint32_t)TIME_I2MS(ticks) + ms_offset_copy; 119 return (uint32_t)TIME_I2MS(ticks) + ms_offset_copy;
120} 120}
121
122uint16_t timer_elapsed(uint16_t last) {
123 return TIMER_DIFF_16(timer_read(), last);
124}
125
126uint32_t timer_elapsed32(uint32_t last) {
127 return TIMER_DIFF_32(timer_read32(), last);
128}
diff --git a/platforms/test/timer.c b/platforms/test/timer.c
index eb929d7dac..f5ee07fd57 100644
--- a/platforms/test/timer.c
+++ b/platforms/test/timer.c
@@ -60,14 +60,6 @@ uint32_t timer_read32(void) {
60 return current_time; 60 return current_time;
61} 61}
62 62
63uint16_t timer_elapsed(uint16_t last) {
64 return TIMER_DIFF_16(timer_read(), last);
65}
66
67uint32_t timer_elapsed32(uint32_t last) {
68 return TIMER_DIFF_32(timer_read32(), last);
69}
70
71void set_time(uint32_t t) { 63void set_time(uint32_t t) {
72 current_time = t; 64 current_time = t;
73 access_counter = 0; 65 access_counter = 0;
diff --git a/platforms/timer.c b/platforms/timer.c
index 26038dcda3..ba2cf94d2b 100644
--- a/platforms/timer.c
+++ b/platforms/timer.c
@@ -6,3 +6,11 @@
6// Generate out-of-line copies for inline functions defined in timer.h. 6// Generate out-of-line copies for inline functions defined in timer.h.
7extern inline fast_timer_t timer_read_fast(void); 7extern inline fast_timer_t timer_read_fast(void);
8extern inline fast_timer_t timer_elapsed_fast(fast_timer_t last); 8extern inline fast_timer_t timer_elapsed_fast(fast_timer_t last);
9
10uint16_t timer_elapsed(uint16_t last) {
11 return TIMER_DIFF_16(timer_read(), last);
12}
13
14uint32_t timer_elapsed32(uint32_t last) {
15 return TIMER_DIFF_32(timer_read32(), last);
16}