删除文件 Demo-Service/2、消息同步/msg_taskmsg.c

This commit is contained in:
零中断延迟的RTOS
2026-02-04 10:12:01 +00:00
committed by Gitee
parent e04b9798a7
commit 83de6000dc

View File

@@ -1,61 +0,0 @@
/**************************************************************************//**
* @item CosyOS-III 例程(服务应用)
* @file msg_taskmsg.c
* @brief 消息同步_私信
* @details 通过私信的应用实现任务间通信。
* @author 迟凯峰
* @version V1.0.0
* @date 2026.02.01
******************************************************************************/
#if 1 /* 编译开关 */
#include "CosyOS.H"
#include <stdio.h> // for printf
dExternTaskmsg(task_2)(uint8_t, void *, float); // 声明动态创建的私信任务 task_2私信形参可以仅依次输入数据类型
/* 静态创建私信任务 task_1 */// 1个私信形参形参别名在任务内部宏定义
uCreateTaskmsg(task_1, 1, 512, 0, "task_key", 1)(uint8_t tm1)
{
while(1){
#define a tm1 // 定义第一个私信形参 tm1 的别名为 a
if(uRecvTaskmsg(xTick_ms(2000))){ // 接收私信超时时间为2000毫秒返回值为真表示接收成功
printf("task_1: %u, %u\r\n", a++, (uint32_t)&a);
uDelay_ms(1000);
uSendTaskmsg(task_2)(a, &a, a); // 发送私信至 task_2
}
#undef a // 取消定义以备后用
}
uEndTaskmsg(); // 结束私信任务
}
/* 动态创建私信任务 task_2 */// 3个私信形参形参别名在任务外部宏定义
#define a tm1 // 定义第一个私信形参 tm1 的别名为 a
#define b tm2 // 定义第二个私信形参 tm2 的别名为 b
#define c tm3 // 定义第三个私信形参 tm3 的别名为 c
dCreateTaskmsg(task_2, 2, 512, 0, "task_led", 3)(uint8_t a, void *b, float c)
{
while(1){
if(uRecvTM(xTick_s(2))){ // 接收私信超时时间为2秒返回值为真表示接收成功
printf("task_2: %u, %u, %f\r\n", a++, (uint32_t)b, c);
uDelay_s(1);
uSendTM(task_1)(a); // 发送私信至 task_1
}
}
uEndTM(); // 结束私信任务
}
#undef a // 取消定义以备后用
#undef b // 取消定义以备后用
#undef c // 取消定义以备后用
/** 启动钩子 */
void start_hook(void)
{
// uScheduleLock();
uSendTaskmsg(task_1)(1); // 发送私信至 task_1
uStartTask_Ready(task_1); // 启动 task_1初始状态为就绪状态
uStartTask_Ready(task_2); // 启动 task_2初始状态为就绪状态
// uScheduleUnlock();
}
#endif