[FreeRTOS入门学习笔记]定时器

2023-11-15

定时器的使用步骤:

1、定义一个handle,xTimerCreate创建。2、启动定时器 

在Task1中调用

通过队列通知守护任务来执行定时器任务,要再config头文件中定义守护任务相关配置。

虽然定时器是在task1中启动,但是定时器的任务是在回调函数中里面执行,不是在中断中执行任务。

这些创建、复位等函数都是通过往队列中写入数据,再在回调函数中处理。

 3、运行现象

task1在执行过程中,到设定时间就会被打断而执行回调函数中的任务。

注意:定时器的优先级最多取到

定时器消抖

当按键按下,触发中断

void KeyIntInit(void)
{
	EXTI_InitTypeDef EXTI_InitStructure;//定义初始化结构体
	NVIC_InitTypeDef NVIC_InitStructure;//定义结构体

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); /* 使能AFIO复用时钟 */

	GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); /* 将GPIO口与中断线映射起来 */


	EXTI_InitStructure.EXTI_Line=EXTI_Line0; // 中断线
	EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;            // 中断模式
	EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling; // 双边沿触发

	EXTI_InitStructure.EXTI_LineCmd = ENABLE;

	EXTI_Init(&EXTI_InitStructure); // 初始化	


	
	NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQChannel;     //使能外部中断所在的通道	
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  // 抢占优先级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;         // 子优先级
	NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            // 使能外部中断通道 	
	NVIC_Init(&NVIC_InitStructure); // 初始化 

}

创建的定时器是一次性的,执行一次再次执行要通过中断中的Reset函数来复位。 

进入中断函数 ,通过xTimerReset()复位定时器,定时器延时为2s,时间到再去回调任务中执行任务。

每按下一次按键,进入一次中断,定时器复位

 

 实验现象:一直按按键就一直进入中断复位定时器,延时回调函数的执行。只有在定时器时间到了才会进入回调函数处理按键状态。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[FreeRTOS入门学习笔记]定时器 的相关文章

随机推荐

  • 进制转换成_10to16

    include math h void 10to16 char 10 char 16 int n n atoi 10 sprintf 16 x n main char 10 20 16 20 printf input 10 jinzhi n
  • QT 去掉标题栏和去掉标题栏后移动窗口

    转自 http www 2cto com kf 201302 191602 html 在用QT编写界面时 去掉标题栏方法比较简单 就一行代码 this gt setWindowFlags Qt FramelessWindowHint 去掉以
  • go 无限极分类实现 返回树状排列数据 或 树状层级数据

    根据从数据表中查询的多条数据得到树状数据 数据表中根据 id 与 pid进行区分上下级 具体实现如下 1 分类排列 Menu 菜单 type Menu struct Id int Pid int CateName string Desc s
  • go 关于redis包的依赖包go.opentelemetry.io/otel下载出现i/o timeout

    通过go get u v github com go redis redis对redis包进行添加 会出现i o timeout的错误 对于该依赖包的解决方法在百度查找不到 但是可以找到相关的网站 https opentelemetry i
  • 中文停用词

    一 数 日 0 1 2 3 4 5 6 7 8 9 lt gt gt gt A Lex exp sub sup
  • 专题详解-5G接入控制(1)

    相关文章会在公众号同步更新 公众号 5G通信大家学 持续更新的相关5G内容都是直接根据3GPP整理 保证更新内容的准确性 避免通过二手 甚至多手的资料 以讹传讹误导网友 最近工作中遇到了一些5G专网接入限制的问题 以前没仔细研究 借着解决这
  • angular路由参数路由跳转

    路由参数及跳转 本节介绍路由参数及跳转相关 准备工作 首先 我们需要将上一节的 CommentService UserService抽离成单独的文件 以便多处使用 ng g s components router study comment
  • Python入门_使用while循环计算1-100之间偶数和

    案例 计算1 100之间所有偶数的和 i 1 定义一个变量sum为0 用来存放和 sum 0 while i lt 100 每次sum和i相加 if i 2 0 sum i i 1 执行完之后 打印sum的值 print 1 100之间偶数
  • Nginx实现反向代理和负载均衡

    Nginx安装 本文章主要介绍下 如何使用Nginx来实现反向代理和负载均衡 Nginx安装和基础知识 可参考我的这篇文章 Nginx安装 Nginx实现反向代理 实现反向代理需要准备两台Nginx服务器 一台Nginx服务器A ip为 1
  • leetcode33. 搜索旋转排序数组

    整数数组 nums 按升序排列 数组中的值 互不相同 在传递给函数之前 nums 在预先未知的某个下标 k 0 lt k lt nums length 上进行了 旋转 使数组变为 nums k nums k 1 nums n 1 nums
  • 【Python编程】如何在 Jupyter Notebook 中切换虚拟环境

    如何在 Jupyter Notebook 中切换虚拟环境 一 操作步骤 1 首先切换到想要在 Jupyter Notebook 里使用的虚拟环境 conda activate 环境名称 2 安装 ipykernel conda instal
  • TCP详解(一)服务和首部介绍

    文章目录 引言 TCP的服务 TCP首部 引言 TCP全称传输控制协议 Transmission Control Protocol 它是一种传输层通信协议 提供了面向连接的 可靠的字节流服务 本文将会简要介绍TCP为应用层提供的服务以及TC
  • node基础之三:http 模块

    1 导入模块 const http require http 2 创建服务 const server http createServer request response gt 获取请求方法 request method 获取请求 url
  • 阿里云1核1G内存1M宽带可以支持多少IP访问量?

    阿里云1核CPU 1G内存 1M公网宽带云服务器够用吗 1M宽带可以支持多少IP的访问量 来说说1M宽带可以跑多少流量及1核1G服务器配置性能 1核 1G 1M宽带配置能跑多少IP 一般来讲 如果图片不多 每天3000PV是没问题的 如果将
  • 优秀的CobaltStrike插件推荐:编程

    优秀的CobaltStrike插件推荐 编程 CobaltStrike是一款功能强大的渗透测试工具 广泛应用于红队行动和网络安全评估 它的灵活性和可扩展性使得开发者可以编写自己的插件来增强其功能 在这篇文章中 我将向你推荐一些好用的Coba
  • java并发包:重入锁与Condition条件

    本文转载至 http blog csdn net a910626 article details 51900941 重入锁 这里介绍一下synchronized wait notify方法的替代品 或者说是增强版 重入锁 重入锁是可以完全替
  • redis--13--Jedis使用

    redis 13 Jedis使用 代码位置 https gitee com DanShenGuiZu learnDemo tree master redis learn jedis 1 redis conf 修改 允许远程连接 bind 1
  • Java异常-Exception

    一 异常介绍 基本概念 Java语言中 将程序执行中发生的不正常情况称为 异常 注 开发过程中的语法错误和逻辑错误不是异常 执行过程中所发生的异常事件可分为两大类 Error 错误 Java虚拟机无法解决的严重问题 如 JVM系统内部错误
  • 2023-05-18 题目

    2023 05 18 题目 1 String 字符串 String 不是基本数据类型 且是不能被继承的 因为string类被final修饰 源码 public final class String implements java io Se
  • [FreeRTOS入门学习笔记]定时器

    定时器的使用步骤 1 定义一个handle xTimerCreate创建 2 启动定时器 在Task1中调用 通过队列通知守护任务来执行定时器任务 要再config头文件中定义守护任务相关配置 虽然定时器是在task1中启动 但是定时器的任