diff --git a/drv/rcc.c b/drv/rcc.c index 4369a79..4c97f5c 100644 --- a/drv/rcc.c +++ b/drv/rcc.c @@ -94,17 +94,20 @@ void rcc_reset(enum RccApb1 apb1_mask, enum RccApb2 apb2_mask) void rcc_get_clocks(struct RccClocks* clocks) { + clocks->ahb_freq = 0; switch (current_preset) { case RCC_PRESET_DEFAULT: clocks->ahb_freq = 8000000; clocks->apb1_freq = 8000000; clocks->apb2_freq = 8000000; + clocks->tim_freq = 8000000; break; case RCC_PRESET_SPEED: clocks->ahb_freq = 72000000; clocks->apb1_freq = 36000000; clocks->apb2_freq = 72000000; + clocks->tim_freq = 7200000; break; default: //TODO hardfault diff --git a/drv/rcc.h b/drv/rcc.h index 9d1e9d4..51eacea 100644 --- a/drv/rcc.h +++ b/drv/rcc.h @@ -106,6 +106,7 @@ struct RccClocks { uint32_t ahb_freq; uint32_t apb1_freq; uint32_t apb2_freq; + uint32_t tim_freq; };