mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-02-05 19:39:42 +08:00
删除文件 Demo-Service/2、消息同步/msg_taskmsg.c
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user