diff --git a/ion/src/device/device.cpp b/ion/src/device/device.cpp index da42108ed..9aaddae1c 100644 --- a/ion/src/device/device.cpp +++ b/ion/src/device/device.cpp @@ -201,6 +201,9 @@ void initPeripherals() { Console::Device::init(); SWD::Device::init(); + // CPU clock is 96 MHz, and systick clock source is divided by 8 + // To get 1 ms systick overflow we need to reset it to + // 96 000 000 (Hz) / 8 / 1 000 (ms/s) - 1 (because the counter resets *after* counting to 0) CM4.SYST_RVR()->setRELOAD(11999); CM4.SYST_CVR()->setCURRENT(0); CM4.SYST_CSR()->setCLKSOURCE(CM4::SYST_CSR::CLKSOURCE::AHB_DIV8);