Aby miec pewnosć, że zmienna SystemCoreClock ma prawidłową wartość.
Funkcja SystemCoreClockUpdate() nie ustawia żadnych zegarów. Odczytuje jedynie wartości z rejestrów pll, preskalerów, mnożników i uwzględniając wartość HSE_VALUE lub HSI_VALUE, oblicza częstotliwość taktowania i zapisuje do zmiennej globalnej uint32_t SystemCoreClock.
Nie wiem (nie zwróciłem na to uwagi) czy SystemInit() po przekonfigurowaniu zegarów aktualizuje zmienną SystemCoreClock. Więc dla pewności robię to przed konfiguracją SysTick-a.
Jak wspominałem, jestem początkujący w języku C jak i ARM-ach, więc jeszcze wielu rzeczy nie wiem. Ale tym co wiem się dzielę.
Funkcja SystemCoreClockUpdate() nie ustawia żadnych zegarów. Odczytuje jedynie wartości z rejestrów pll, preskalerów, mnożników i uwzględniając wartość HSE_VALUE lub HSI_VALUE, oblicza częstotliwość taktowania i zapisuje do zmiennej globalnej uint32_t SystemCoreClock.
Nie wiem (nie zwróciłem na to uwagi) czy SystemInit() po przekonfigurowaniu zegarów aktualizuje zmienną SystemCoreClock. Więc dla pewności robię to przed konfiguracją SysTick-a.
Jak wspominałem, jestem początkujący w języku C jak i ARM-ach, więc jeszcze wielu rzeczy nie wiem. Ale tym co wiem się dzielę.
73 Paweł

