Системный таймер

Системный таймер - SysTick timer(STK), 24х битный декрементный счетчик, который является частью ядра. После того как его значение будет нулевым, происходит перезагрузка таймера до значения в STK_LOAD регистре во время следующего тактового периода.

Во время отладки если процессор остановлен, то и таймер не считает.

Создадим папку для проектов и поместим туда базовый проект:

nis@jane ~/stm32/f4examples $ mkdir 03-systick

nis@jane ~/stm32/f4examples $ cp -av 02-ints/00-base/ 03-systick/

Также обновим файл startup.c взяв его из примера инициализации прерываний:

nis@jane ~/stm32/f4examples $ cp 02-ints/01-init-ints/startup.c 03-systick/00-base/

Добавим в базовый проект обработчик для системного таймера в файле startup.c, а также добавим заголовочный файл в рабочем файле проекта work.c.

В качестве примера возьмем дополненый пример мигания светодиодов со сменой режима, и изменим механизм задержки, а также механизм переключения светодиодов.