From 98ae3126402260eab306e846d01d12af317d96a2 Mon Sep 17 00:00:00 2001 From: robert-hh Date: Sat, 4 Jun 2022 20:23:56 +0200 Subject: [PATCH] samd/samd_isr: Extend systick_ms to 64 bit. By adding a 32 bit overflow counter. This allows it to be used for the time functions. --- ports/samd/samd_isr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ports/samd/samd_isr.c b/ports/samd/samd_isr.c index dcf80d28ca..a7956c4930 100644 --- a/ports/samd/samd_isr.c +++ b/ports/samd/samd_isr.c @@ -32,6 +32,7 @@ extern uint32_t _estack, _sidata, _sdata, _edata, _sbss, _ebss; const ISR isr_vector[]; uint32_t systick_ms; +volatile uint32_t systick_ms_upper; void Reset_Handler(void) __attribute__((naked)); void Reset_Handler(void) { @@ -81,7 +82,11 @@ void Default_Handler(void) { } void SysTick_Handler(void) { - systick_ms += 1; + uint32_t next_tick = systick_ms + 1; + systick_ms = next_tick; + if (systick_ms == 0) { + systick_ms_upper += 1; + } } const ISR isr_vector[] __attribute__((section(".isr_vector"))) = {