CMSIS-Core (Cortex-M)  Version 5.1.1
CMSIS-Core support for Cortex-M processor-based devices
 All Data Structures Files Functions Variables Enumerations Enumerator Groups Pages
Systick Timer (SYSTICK)

Initialize and start the SysTick timer. More...


uint32_t SysTick_Config (uint32_t ticks)
 System Tick Timer Configuration. More...


The System Tick Time (SysTick) generates interrupt requests on a regular basis. This allows an OS to carry out context switching to support multiple tasking. For applications that do not require an OS, the SysTick can be used for time keeping, time measurement, or as an interrupt source for tasks that need to be executed regularly.

Code Example

The code below shows the usage of the function SysTick_Config() with an LPC1700.

#include "LPC17xx.h"
volatile uint32_t msTicks = 0; /* Variable to store millisecond ticks */
void SysTick_Handler(void) { /* SysTick interrupt Handler. */
msTicks++; /* See startup file startup_LPC17xx.s for SysTick vector */
int main (void) {
uint32_t returnCode;
returnCode = SysTick_Config(SystemCoreClock / 1000); /* Configure SysTick to generate an interrupt every millisecond */
if (returnCode != 0) { /* Check return code for errors */
// Error Handling

Function Documentation

uint32_t SysTick_Config ( uint32_t  ticks)

Initialises and starts the System Tick Timer and its interrupt. After this call, the SysTick timer creates interrupts with the specified time interval. Counter is in free running mode to generate periodical interrupts.

[in]ticksNumber of ticks between two interrupts
0 - success
1 - failure
When #define __Vendor_SysTickConfig is set to 1, the standard function SysTick_Config is excluded. In this case, the file device.h must contain a vendor specific implementation of this function.