From 576171f7323ed1871353e2de284e0a539db9f8c8 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Wed, 16 Jul 2025 15:36:49 +0200 Subject: [PATCH] system (systick related) --- system.c | 35 +++++++++++++++++++++++++++++++++++ system.h | 6 ++++++ 2 files changed, 41 insertions(+) create mode 100644 system.c create mode 100644 system.h diff --git a/system.c b/system.c new file mode 100644 index 0000000..656b1a3 --- /dev/null +++ b/system.c @@ -0,0 +1,35 @@ +#include "system.h" +#include +#include + +volatile uint64_t ticks = 0; + +void sys_tick_handler(void) { ticks++; } + +uint64_t get_ticks(void) { return ticks; } + +void systick_setup(void) { + // systick_set_frequency(1000, 72000000); + systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); + systick_set_reload(72000000 / 1000 - 1); // 1ms tick + systick_clear(); + systick_interrupt_enable(); + systick_counter_enable(); +} + +void sys_tick_setup(void) { + ticks = 0; + // rcc_clock_setup_pll(&rcc_hse_configs[RCC_CLOCK_HSE16_72MHZ]); + + // systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8); + systick_set_clocksource(STK_CSR_CLKSOURCE_AHB); + + // systick_set_reload(8999); + systick_set_frequency(1000, 72000000); + systick_clear(); + + systick_interrupt_enable(); + systick_counter_enable(); + + return; +} diff --git a/system.h b/system.h new file mode 100644 index 0000000..942ec89 --- /dev/null +++ b/system.h @@ -0,0 +1,6 @@ +#pragma once +#include + +void sys_tick_handler(void); +uint64_t get_ticks(void); +void systick_setup(void);