找回密码
 立即注册
查看: 40|回复: 1

私信报错 | 可以了

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2026-05-28 16:42:50
已绑定手机

41

主题

331

回帖

976

积分

高级会员

积分
976
发表于 3 天前 | 显示全部楼层 |阅读模式
  1. #if 1 /* 编译开关 */
  2. #include "CosyOS.H" // 用户的各个c文件中应包含此文件
  3. #include <stdio.h> // for printf
  4. /*-----------------------*
  5. | 创建任务 - 参数说明表 |
  6. |-----------------------+-----------------------------------------------------------*
  7. | 任务名称 | 任务优先级 | 任务栈大小 | 安全运行时 | 任务名称文本(兼容模式)        |
  8. |----------+------------+------------+------------+---------------------------------|
  9. | task_1   | 1级        | 384字节    | 0为无限长  | 0为自动引用任务名称,即"task_1" |
  10. |----------+------------+------------+------------+---------------------------------|
  11. | task_2   | 2级        | 384字节    | 9滴答周期  | "task_led"为任务名称文本        |
  12. *-----------------------------------------------------------------------------------*/
  13. /*
  14.    注意事项 for 8051:
  15.         1、在默认情况下,任务栈SIZE不允许大于255。
  16.         2、只有在启用了XBPSTACK的任务切换现场保护时,任务栈SIZE才允许大于255,最大可为65535。
  17. */
  18. uExternTaskmsg(task_3, 1, 192, 0, "task_key", 1)(unsigned int);
  19. uExternTaskmsg(task_4, 1, 192, 0, "task_key1", 1)(unsigned int);
  20. /* 静态创建 task_1 */
  21. uCreateTask(task_1, 1, 192, 0, "Test_task1")
  22. {
  23.     while(1){
  24.         printf("task_1\r\n");
  25.         uDelay_ms(1000);
  26.         P20 =! P20;
  27.     }
  28. }
  29. /* 动态创建 task_2 */
  30. uCreateTask(task_2, 2, 192, 0, 0)
  31. {
  32.     while(1){
  33.         printf("task_2\r\n");
  34.         uDelay_ms(500);
  35.         P21 =! P21;
  36.     }
  37. }
  38. /* 静态创建私信任务 task_1 */// 1个私信参数
  39. uCreateTaskmsg(task_4, 1, 192, 0, "task_key1", 1)(unsigned int tm1)
  40. {
  41.     while(1){ // 已内置循环,此循环可省略
  42.         if(uRecvTaskmsg(xTick_ms(2000))){ // 接收私信,超时时间为2000毫秒,返回值为真表示接收成功
  43.             printf("task_4: %u, %u\r\n", tm1++, (unsigned int)&tm1);
  44.             uDelay_ms(1000);
  45.             uSendTaskmsg(task_3)(tm1); // 发送私信至 task_3
  46.         }
  47.     }        
  48.     uEndTaskmsg(); // 结束私信任务
  49. }
  50. /* 静态创建私信任务 task_1 */// 1个私信参数
  51. uCreateTaskmsg(task_3, 1, 192, 0, "task_key", 1)(unsigned int tm1)
  52. {
  53.     while(1){ // 已内置循环,此循环可省略
  54.         if(uRecvTaskmsg(xTick_ms(2000))){ // 接收私信,超时时间为2000毫秒,返回值为真表示接收成功
  55.             printf("task_3: %u, %u\r\n", tm1++, (unsigned int)&tm1);
  56.             uDelay_ms(1000);
  57.             uSendTaskmsg(task_4)(tm1); // 发送私信至 task_2
  58.         }
  59.     }
  60.         
  61.     uEndTaskmsg(); // 结束私信任务
  62. }
  63. /*
  64. * 启动钩子
  65. * 除了启动用户任务以外,启动钩子还适用于那些允许缓期执行的、
  66. * 需要开中断以后执行的、需要调用任务级服务执行的初始化工作。
  67. * 如果不想在启动任务过程中进行任务调度,可开启调度锁。
  68. */
  69. void start_hook(void)
  70. {
  71. //  uScheduleLock();
  72.         
  73.   //  uStartTask_Ready(task_1); // 启动 task_1,初始状态为就绪状态
  74.   //  uStartTask_Ready(task_2); // 启动 task_2,初始状态为就绪状态
  75.    uSendTaskmsg(task_3)(1);  // 发送私信至 task_1
  76.     uStartTask_Ready(task_3); // 启动 task_1,初始状态为就绪状态
  77.     uStartTask_Ready(task_4); // 启动 task_1,初始状态为就绪状态
  78.         
  79.         // uStartTaskmsg(TaskMsgTest, 123); // 私信任务启动
  80.         
  81. //  uScheduleUnlock();
  82. }
  83. #endif
复制代码


回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:467
  • 最近打卡:2026-05-28 16:42:50
已绑定手机

41

主题

331

回帖

976

积分

高级会员

积分
976
发表于 3 天前 | 显示全部楼层
uExternTaskmsg(task_3)(unsigned int);
uExternTaskmsg(task_4)(unsigned int);

可以了;
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-5-30 04:44 , Processed in 0.125698 second(s), 47 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表