FreeRTOS使用软件定时器
通过创建软件定时器实现500ms中断,执行x次后停止并删除定时器。
宏:
//RTOS系统节拍中断的频率。即一秒中断的次数,每次中断RTOS都会进行任务调度
#define configTICK_RATE_HZ (( TickType_t )1000)
//支持动态内存申请
#define configSUPPORT_DYNAMIC_ALLOCATION 1 //启用软件定时器
#define configUSE_TIMERS 1
main.c
#include "AppTask.h"static void BSP_Init(void)
{NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//优先级0-15LED_GPIO_Config();USART_Config();
}int main(void)
{BaseType_t xReturn = pdPASS;BSP_Init();xReturn = xTaskCreate((TaskFunction_t) (AppCreate_Task),(const char*) "AppCreate_Task",(uint16_t) 512, (void*) NULL,(UBaseType_t) 1,(TaskHandle_t) (&AppCreateTask_Handle));if(xReturn == pdPASS){printf("AppCreate_Task Create Succeed!\r\n");vTaskStartScheduler();//启动任务调度}else{printf("AppCreate_Task Create Fail!\r\n");}while(1);
}
AppTask.h
#ifndef _AppTask_H_
#define _AppTask_H_
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "semphr.h"
#include "event_groups.h"
#include "timers.h"
#include "bsp_led.h"
#include "bsp_usart.h"extern TaskHandle_t AppCreateTask_Handle;
extern void AppCreate_Task(void* parameter);#endif
AppTask.c**
#include "AppTask.h"TaskHandle_t AppCreateTask_Handle = NULL;
static TimerHandle_t Timer_Handle = NULL;static void Timer_Callback(void* parameter);
/*************************************** function:创建App任务函数* parameter:void** return:void* date:2022.3.21* note:* ***********************************/
void AppCreate_Task(void* parameter)
{taskENTER_CRITICAL();Timer_Handle = xTimerCreate((const char*)"Timer",\(TickType_t) 500,\(UBaseType_t) pdTRUE,\(void*) 1,\(TimerCallbackFunction_t) Timer_Callback);xTimerStart(Timer_Handle,0);vTaskDelete(AppCreateTask_Handle);taskEXIT_CRITICAL();
}static void Timer_Callback(void* parameter)
{static int i = 0;TickType_t tick_num2;LED1_TOGGLE;tick_num2 = xTaskGetTickCount(); /* 获取滴答定时器的计数值 */printf("Timer Run...%d\r\n",tick_num2);i++;if(i > 5){xTimerStop(Timer_Handle,0);xTimerDelete(Timer_Handle,0);printf("删除定时器");}
}
演示现象:
FreeRTOS使用软件定时器相关推荐
- FreeRTOS之软件定时器详解
关注.星标公众号,直达精彩内容 来源:网络素材 整理:技术让梦想更伟大 | 李肖遥 定时器可以说是每个 MCU 都有的外设,有的 MCU 其定时器功能异常强大,比如提供 PWM.输入捕获等功能.但是最 ...
- STM32 FreeRTOS (三) 软件定时器
简介: 基本概念 ReeRTOS中加入了软件定时器这个功能组件,是一个可选的.不属于freeRTOS内核的功能,由定时器服务(其实就是一个定时器任务)来提供. 软件定时器是当设定一个定时时间,当达到设 ...
- 【FreeRTOS】软件定时器的使用
❤️作者主页:凉开水白菜 ❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步! ❤️专栏资料:https://pan.baidu.com/s/1nc1rfyLiMyw6ZhxiZ1Cumg ...
- FreeRTOS 软件定时器使用
FreeRTOS 的软件定时器工作模式有两种:单次触发 和 自动重载. 1. 主要功能函数介绍 官方API文档:FreeRTOS 软件定时器 API文档 最为常用的函数有: // 创建软件定时器,返回 ...
- 【FreeRTOS】11 软件定时器
定时器是MCU常用的外设,我们在学习各种单片机时必然会学习它的硬件定时器.但是,MCU自带的硬件定时器资源是有限的,而且一般会用在实时性要求很强的地方. 在freeRTOS中提供了软件定时器的功能,来 ...
- FreeRTOS软件定时器 基于STM32
文章目录 一·.软件定时器的基本概念 二.软件定时器应用场景 三.软件定时器的精度 四.软件定时器的运作机制 五.软件定时器函数接口讲解 1.软件定时器创建函数 xTimerCreate() 2.软件 ...
- FreeRTOS学习六(软件定时器)
软件定时器允许设置一段时间,当设置的时间到达之后就执行指定的功能函数,被定时器调用的这个功能函数叫做定时器的回调函数.回调函数的两次执行间隔叫做定时器的定时周期,简而言之,当定时器的定时周期到了以后就 ...
- FreeRtos软件定时器复习
一.基础概念 概念解析:定时器分为硬与软定,硬件定时器到达定时时间自动触发中断服务函数,使用软件定时器时,需要我们在创建软件定时器时指定时间到达后要调用的函数(也称超时函数/回调函数,为了统一,下文均 ...
- FreeRTOS记录(八、用软件定时器?还是硬件定时器?)
FreeRTOS软件定时器,相对前面的内容来说,软件定时器还是比较简单的,我们简单测试一下 因为是简单介绍,所以原理和源码的分析不会那么详细,具体可以根据文中API查看源码 使用起来记住创建,启动,回 ...
最新文章
- Tails 3.13 发布,更新 Intel 微码,改进拼音输入法支持
- python随机排列图片_python 随机打乱 图片和对应的标签方法
- 【操作系统】进程间通信
- LA4234 Binary Clock(进制转换)
- hdu5492(2015合肥网络赛I题)
- 前端工程师笔试题(欢迎评论留言)
- ParameterizedTypeImpl
- [css] 简述下你理解的优雅降级和渐进增强
- bug宝典linux篇 LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory(转)
- Spring中自动装配
- 遗传算法学习及matlab代码
- C#【必备技能篇】注册dll+批量注册dll
- TMS320F280049C 串行通信接口Serial Communications Interface (SCI)之RS485通信(多摩川编码器)
- 自制力差的元凶及习惯的养成过程
- Matlab绘制图像(plot函数)
- 如何保存gif表情包里面的部分图片?
- flac转mp3教程flac怎么转mp3才能减小音质的丢失
- 从面试官的视角来提升面试者的必须具备的IT技能
- 【Linux】 常用命令
- AI视觉传感器作用和应用介绍
热门文章
- HomeBank-5.5.4-个人家庭记账分析软件(开源)
- NJU 2020 计算机拔尖(数学)测试 解题报告
- gwu计算机硕士排名,美国乔治华盛顿大学计算机专业排名 研究方向有哪些
- emc服务器装什么系统,EMC DD系统安装指南.pdf
- 局域网中的两台主机共享一台显示器
- zabbix的下载与配置
- 如何拥有一颗平常心?(KK记)
- 51单片机-串口通信
- 删除归档日志错误ORA-15028: ASM file '..' not dropped; currently being accessed
- python去掉文件名中的_normal,_abnor后缀