首页 > 其他分享 >11_FreeRTOS时间管理

11_FreeRTOS时间管理

时间:2024-03-28 20:35:40浏览次数:24  
标签:11 task PRIO FreeRTOS 管理 void include SIZE

FreeRTOS时间管理

延时函数介绍

image-20240324185539505

延时函数演示实验

image-20240324185744169

image-20240325165233218

image-20240325165253943

代码

freertos_demo.c

/**
 ****************************************************************************************************
 * @file        freertos.c
 * @author      正点原子团队(ALIENTEK)
 * @version     V1.4
 * @date        2022-01-04
 * @brief       FreeRTOS 移植实验
 * @license     Copyright (c) 2020-2032, 广州市星翼电子科技有限公司
 ****************************************************************************************************
 * @attention
 *
 * 实验平台:正点原子 探索者F407开发板
 * 在线视频:www.yuanzige.com
 * 技术论坛:www.openedv.com
 * 公司网址:www.alientek.com
 * 购买地址:openedv.taobao.com
 *
 ****************************************************************************************************
 */

#include "freertos_demo.h"
#include "./SYSTEM/usart/usart.h"
#include "./BSP/LED/led.h"
#include "./BSP/LCD/lcd.h"
#include "./BSP/KEY/key.h"
#include "./SYSTEM/delay/delay.h"
#include "./MALLOC/malloc.h"
/*FreeRTOS*********************************************************************************************/
#include "FreeRTOS.h"
#include "task.h"

/******************************************************************************************************/
/*FreeRTOS配置*/

/* START_TASK 任务 配置
 * 包括: 任务句柄 任务优先级 堆栈大小 创建任务
 */
#define START_TASK_STACK_SIZE 	128
#define START_TASK_PRIO		1
TaskHandle_t start_task_handler;

#define TASK1_STACK_SIZE 	128
#define TASK1_PRIO		2
TaskHandle_t task1_handler;

 #define TASK2_STACK_SIZE 	128
#define TASK2_PRIO		3
TaskHandle_t task2_handler;

 
void start_task( void * pvParameters );

void task1( void * pvParameters )
{
	while(1)
	{
		LED0_TOGGLE();
		delay_ms(10);
		vTaskDelay(500);
	}
}


char task_buff[300];
void task2( void * pvParameters )
{
	TickType_t xLastWakeTime;
	xLastWakeTime = xTaskGetTickCount();
	while(1)
	{
		LED1_TOGGLE();
		delay_ms(10);
		vTaskDelayUntil(&xLastWakeTime, 500);
	}
}

/******************************************************************************************************/

/**
 * @brief       FreeRTOS例程入口函数
 * @param       无
 * @retval      无
 */
void freertos_demo(void)
{
    xTaskCreate(start_task, "start_task", START_TASK_STACK_SIZE, NULL, START_TASK_PRIO, &start_task_handler);
	vTaskStartScheduler();
}

void start_task( void * pvParameters )
{
	taskENTER_CRITICAL(); //进入临界区
	xTaskCreate(task1, "task1", TASK1_STACK_SIZE, NULL, TASK1_PRIO, &task1_handler);
	xTaskCreate(task2, "task2", TASK2_STACK_SIZE, NULL, TASK2_PRIO, &task2_handler);
    vTaskDelete(NULL);
	taskEXIT_CRITICAL(); //退出临界区
}

标签:11,task,PRIO,FreeRTOS,管理,void,include,SIZE
From: https://www.cnblogs.com/mzx233/p/18102550

相关文章

  • java计算机毕业设计(附源码)学生社团管理系统(ssm+mysql+maven+LW文档)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着教育多元化的推进,学生社团作为校园文化的重要组成部分,在培养学生兴趣爱好、提升实践能力、促进人际交往等方面发挥着不可替代的作用。然而,伴随着社团......
  • pytest框架的封装以及用例管理框架
    pytest框架的封装以及用例管理框架公共类统一封装requests_util02.pytest_api01.py自动化测试的基础自动化测试的介入点自动化测试和手工测试占比自动化实施过程pytest元素定位元素定位查找元素定位的方式通过ID定位通过Name定位通过ClassName定位通过TagName......
  • Hexo发布管理工具
    hexo-commander在本地使用hexo,往往需要多次打开使用命令行工具重复输入命令。虽然有个hexo-admin项目可以方便使用,然而该项目已经不再维护,并且为web页面,在本地使用不如桌面软件方便。因此用qt写了这个工具方便编辑发布文章到hexo博客。源码:https://github.com/weloe/hexo-co......
  • COMP9311 24T1 数据库处理
    COMP931124T1:项目1截止时间:3月29日星期五16:59:59(悉尼时间)1.目的这个项目旨在让你在阅读和理解一个适度大的关系模式(MyMyUNSW)。实现SQL查询和视图以满足信息请求。实现PL/pgSQL函数以帮助满足信息请求。目标是在MyMySUNSW数据库上构建一些有用的数据访问操作。数据可能包......
  • 学员健康管理系统 大作业
    学员健康管理系统大作业欢迎阅读本篇博客,我们将介绍如何优化一个基于Python和MySQL的用户管理系统。该系统旨在提供管理员和普通用户角色的功能,并包括用户管理、体检报告记录、医学知识库等功能。通过本指南,您将了解系统的重点功能以及如何结合代码进行解释。1.数据......
  • 【课程设计/实训作品】python小区物业管理系统项目源码
    一直想做一款小区物业管理系统,看了很多优秀的开源项目但是发现没有合适的。于是利用空闲休息时间开始自己写了一套管理系统。学习过程中遇到问题可以评论。在线体验http://wuye.gitapp.cn/(账号:admin123密码:admin123)源码地址https://github.com/geeeeeeeek/python_wuye......
  • C#酒店管理系统
    一、摘要在科技高速发展的今天,一切商业行为都能跟计算机取得联系,这不仅仅是为了不落后于时代,不被主流所淘汰,更是为了更好的借助计算机来实现更大的商业利益。随着更多人接受电子商务,以及年轻一代享受电脑带来的方便、迅速,酒店行业也不例外的加入了电子商务的行列。现代化......
  • SCP简介以及106~110的介绍
    注:本文只供开玩笑 ,与 Anisolatedperson合作 目录SCP-106SCP-107SCP-108SCP-109SCP-110---------------------------------------------------------------------------------------------------------------------------------SCP-106SCP-106对象类:KeterS......
  • 代码随想录Day17 ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之和
     110.平衡二叉树 classSolution{public://返回以该节点为根节点的二叉树的高度,如果不是平衡二叉树了则返回-1intgetHeight(TreeNode*node){if(node==NULL){return0;}intleftHeight=getHeight(node->left......
  • Drools业务规则管理系统25_Drools基础语法4
    一、规则文件构成在使用Drools时非常重要的一个工作就是编写规则文件,通常规则文件的后缀为.drl。drl是DroolsRuleLanguage的缩写。在规则文件中编写具体的规则内容。一套完整的规则文件内容构成如下:package其实就是一个逻辑层面的划分,不同于java里面的包名,说白......