概述
LPC178x/7x 系列 Cortex-M3 具有一个系统节拍定时器,它是 Cortex-M3 的主要组成部分。
系统节拍定时器专为操作系统或其它的系统管理软件提供 10 毫秒的间隔中断
特性
10 毫秒时间间隔;
专用的异常向量;
可由 CPU 提供时钟信号或由引脚(STCLK)输入时钟信号。
寄存器描述
系统节拍定时器中断设置
LPC178x/7x系列 Cortex-M3 有一个系统节拍定时器,SysTick是一个 24 位的倒计数定时器,
只要当计数值达到 0 时可产生中断。
Cortex-M3 为 SysTick 提供专用异常(异常号:15),一旦 SysTick 触发中断,当处理器响
应中断后将自动定位到中断向量表,并从向量表中找出 SysTick 中断处理的入口地址,然后 PC
指针跳转到该地址处执行中断服务函数。
对 SysTick 的控制寄存器和状态机寄存器 STCTRL 进行读操作,可以清除 SysTick 中断标志
系统节拍定时器操作举例
系统节拍定时器是一个 24 位的倒计数定时器,当计数值达到 0 时产生中断。系统节拍定时
器的作用是为下次中断前提供一个 10 毫秒的固定时间间隔。系统节拍定时器的时钟信号可以由
CPU 提供也可以由外部引脚 STCLK 提供
要想在规定的时间点上产生中断(循环产生),就必须先将指定的时间间隔值装入 STRELOAD。
/************************************************
函数名称 : device_init
功 能 : 板上资源初始化
参 数 : 无
返 回 值 : 无
说 明 :
*************************************************/
void mcu_systick_init(void)
{
SYSTICK_InternalInit(100);//启用内部时钟,设置定时间隔,单位ms
SYSTICK_Cmd(ENABLE);//启动定时器
SYSTICK_IntCmd(ENABLE);//启动中断
}
/**********************************************************************************************
** 函数名称: SysTick_Handler
** 函数功能: sysTick 中断处理函数
** 入口参数:无
** 出口参数:无
**********************************************************************************************/
void SysTick_Handler(void)
{
SYSTICK_ClearCounterFlag();
_printf("滴答定时器100ms
");
}