当前位置: 首页 > news >正文

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

关键函数:

  • 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小时的定时周期。

http://www.dtcms.com/a/288966.html

相关文章:

  • 使用“桥接模式“,实现跨平台绘图或多类型消息发送机制
  • SpringBoot的介绍和项目搭建
  • 【C语言】字符串与字符函数详解(上)
  • C++ 详谈继承体系下的构造函数和析构函数
  • k8s:离线添加集群节点的相关组件安装与升级
  • GeoServer 信息泄漏漏洞复现(CVE-2025-27505)
  • 周志华《机器学习导论》第11章 特征选择与稀疏学习
  • 机器学习-数据预处理
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十六课——正弦波DDS的FPGA实现
  • leetcode75【经典动态规划】之:最长公共子序列
  • nginx源码解读-------整体架构
  • 30天打牢数模基础-LightGBM讲解
  • 网络地址和主机地址之间进行转换的类
  • springboot电影推荐网站—计算机毕业设计源码—30760
  • 在Ubutu22系统上面离线安装Go语言环境【教程】
  • 【开源项目】基于RuoYi-Vue-Plus的开源进销存管理系统
  • Spring之AOP面向切面编程详解
  • 软件工程学概述:从危机到系统化工程的演进之路
  • MySQL详解三
  • Java 字符集(Charset)详解:从编码基础到实战应用,彻底掌握字符处理核心机制
  • 文件编码概念|文件的读取操作|文件读取的课后练习讲解
  • 数据治理,治的是什么?
  • 0719代码调试记录
  • 【星海出品】python安装调试篇
  • 网络安全隔离技术解析:从网闸到光闸的进化之路
  • Spring Boot总结
  • RabbitMQ核心组件浅析:从Producer到Consumer
  • 深入理解设计模式:访问者模式详解
  • 深入理解浏览器解析机制和XSS向量编码
  • Java中List<int[]>()和List<int[]>[]的区别