SysTick control and status register (STK_CTRL)

Регистр управления и состояния системного таймера

Смещение (Address offset): 0x00

Reset value: 0x0000'0000

3130292827262524
Reserved
------------------------
00000000
2322212019181716
Reserved COUNTFLAG
---------------------rw
00000000


15141312111098
Reserved
------------------------
00000000
76543210
Reserved CLKSOURCE TICKINT ENABLE
---------------rwrwrw
00000000


Bits 31:17
Reserved
Must be kept at cleared
Зарезервировано. Должно быть всегда установлено в 0
Bit 16
COUNTFLAG
Returns 1 if timer counted to 0 since last time this was read
Возвращает 1, если таймер досчитал до 0 с момента последнего считывания этого флага

Программное обеспечение может использовать COUNTFLAG, чтобы определить, доводил ли SysTick когда-либо счет до нуля.

Bits 15:3
Reserved
Must be kept at cleared
Зарезервировано. Должно быть всегда установлено в 0
Bit 2
CLKSOURCE
Clock source selection
Выбор источника тактирования

 0 :  AHB/8

 1 :  Processor clock (AHB)

Bit 1
TICKINT
SysTick exception request enable
Разрешает запрос на исключение (прерывание) от системного таймера

 0 :  нет запроса на исключение (прерывание)

 1 :  обратный отсчет при достижении 0 формирует запрос на исключение (прерывание) от системного таймера

Bit 0
ENABLE
Counter enable
Включает системный таймер

Если ENABLE=1, счетчик загружает значение перезагрузки из регистра STK_LOAD и затем ведет обратный отсчет. При достижении значения 0 он устанавливает значение COUNTFLAG равным 1 и, если разрешено исключение (прерывание) битом TICKINT, активирует исключение. Затем он снова загружает значение из регистра STK_LOAD и начинает новый обратный отсчет.

 0 :  системный таймер выключен

 1 :  системный таймер включен



/*****************  Bit definition for SysTick_CTRL register  *****************/

#define  SysTick_CTRL_ENABLE       ((uint32_t)0x00000001)        /* Counter enable */
#define  SysTick_CTRL_TICKINT      ((uint32_t)0x00000002)        /* Counting down to 0 pends the SysTick handler */

#define  SysTick_CTRL_CLKSOURCE    ((uint32_t)0x00000004)        /* Clock source */
#define  SysTick_CTRL_COUNTFLAG    ((uint32_t)0x00010000)        /* Count Flag */