LP-MSPM0G3507学习--07定时器之二定时节拍

发布于:2025-07-21 ⋅ 阅读:(16) ⋅ 点赞:(0)

关键函数:

  • SysTick_Handler(void):系统时钟中断服务函数

不仅通用定时器可以产生定时节拍,MSPM0G3507微控制器中,还有两类外设可以产生定时节拍,即System Tick(系统滴答、系统时钟定时器)、WWDT(Window watch dog timer,窗口看门狗定时器)

1.System Tick

System Tick定时器是一个24位定时器

system Tick定时器的输入信号是32MHz的主时钟

最大定时值为:1/32000000*2^24=524.29ms

 特点:分辨率高,但最大时长有限。

下面实现5500ms定时,并翻转LED1

具体的配置如下:

代码如下:

#include "ti_msp_dl_config.h"
#include "myDrivers.h"
void myDriver_init(void){
    Key_Init();
    LED_Init();
}
int main(void)
{
    SYSCFG_DL_init();
    myDriver_init();
    while (1) {
    }
}
void SysTick_Handler(){
    LED_Invert(LED1);
}

2.WWDT:窗口看门狗定时器

嵌入式系统中看门狗是一个很重要的概念,本质上是一个独立的硬件定时器(计数器)。这个定时器在系统启动后就开始自动计数。系统正常运行时,用户的应用程序(软件)必须周期性地、在定时器超时之前,向看门狗发送一个特定的信号(通常是通过向一个特定的寄存器写入特定值)。这个操作被称为“喂狗”。如果程序因为故障(如进入死循环、指针跑飞、堆栈溢出、中断被错误屏蔽等)而无法按时“喂狗”,看门狗定时器就会计数溢出。如果程序因为故障(如进入死循环、指针跑飞、堆栈溢出、中断被错误屏蔽等)而无法按时“喂狗”,看门狗定时器就会计数溢出。它是构建高可靠、抗干扰嵌入式系统不可或缺的基础组件之一。

WWDT可以设置一个预定义的时间窗口,在这个时间窗口中,应用软件必须重新开始计时器,表明应用程序正在正常执 行(喂狗)。如果应用软件未能在指定窗口内重新开始计时器,WWDT 将向 SYSCTL 发出一个 WWDT 违例信号以产生复 位。 如果应用中不需要看门狗功能,则 WWDT 也可以配置为基本的系统间隔计时器,能够为 CPU 生成周期性可屏蔽 中断。

如图 25-1 所示,窗口看门狗计时器支持使用可选的封闭窗口来检测“太晚”响应和“太早”响应。WWDT 周期 包含封闭窗口期和开放窗口期。封闭窗口期先开始,然后是开放窗口期。WWDT 只能在开放窗口期内重新启动。 在封闭窗口期内尝试重新启动 WWDT 会导致违例。在封闭窗口期后,如果在开放窗口期结束之前未重新启动 WWDT,则 WWDT 周期将会过期,还会产生违例。

MSPM0G3507用户手册

如果不需要封闭窗口功能,可以将其禁用(设置为 0%),从而提供传统的看门狗计时器功能,该功能可以在 WWDT 周期到期之前的任何时间复位 WWDT。 

Window Watchdog Timer(WWDT)定时器与一般看门狗的区别是,它不仅可以配置为"喂狗晚了复位",还可以配置为“喂狗早了也复位”。

在closed Windows 区域,喂狗会发生微控制器复位。如无需此功能,closed Windows 宽度可设为0.

在period expire区域,也就是未及时喂狗,产生通常看门狗复位

通常看门狗除了复位用途外,还可以作为一般的节拍定时器使用,以节约宝贵的通用定时器

看门狗定时器的定时时间跨度大,适合测试长时间轴,在使用低频时钟源、最大预分频,最大计数值的情况下,可以获得超过2小时的定时周期。


网站公告

今日签到

点亮在社区的每一天
去签到