SysTick control and status register (STK_CTRL)
Регистр управления и состояния системного таймера
Смещение (Address offset): 0x00
Reset value: 0x0000'0000
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Reserved | COUNTFLAG | ||||||
--- | --- | --- | --- | --- | --- | --- | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | CLKSOURCE | TICKINT | ENABLE | ||||
--- | --- | --- | --- | --- | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Программное обеспечение может использовать COUNTFLAG, чтобы определить, доводил ли SysTick когда-либо счет до нуля.
0 : AHB/8
1 : Processor clock (AHB)
0 : нет запроса на исключение (прерывание)
1 : обратный отсчет при достижении 0 формирует запрос на исключение (прерывание) от системного таймера
Если 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 */