• 08-笔记:LPC1788-滴答定时器(系统节拍定时器)


    概述

    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
    ");
    }
  • 相关阅读:
    01.html5+phonegap跨平台移动应用开发
    10个CSS简写/优化技巧
    JS高级学习历程-17
    JS高级学习历程-16
    算法详解之Tarjan
    分层图详解
    洛谷 题解 P1196 【[NOI2002]银河英雄传说】
    洛谷 题解 P1220 【关路灯 】
    洛谷 题解 P1352 【没有上司的舞会】
    二维前缀和详解
  • 原文地址:https://www.cnblogs.com/bog-box/p/LPC1788-SYSTICK.html
Copyright © 2020-2023  润新知