找回密码
 立即注册
楼主: 380091044

UCOSII中使用OSTimeDly (INT32U ticks)延时,不进行任务切换?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-7-15 17:30:15 | 显示全部楼层
hsr*** 发表于 2024-7-15 15:11
1. 你参考的哪个例子?我感觉你参考的例子就有问题……或者是你理解错了参考的不对。
2. 一般不需要在我 ...

delay和OSTimeDly测试效果一样一样的,这是令我费解的地方,

我参考的就是官方给的这个例程,代码如下:


/******实时任务**********/
/**任务 A2 :每500ms,P2.2口翻转一次***/
void Task_A(void *p_arg)
{
        if(p_arg);
        while (1)
        {
                P22 = ~P22;
                EA = 0;
                OSCtxSw();
                OSTimeDly(OS_TICKS_PER_SEC / 2);
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-7-15 17:51:26 | 显示全部楼层
38009*** 发表于 2024-7-15 17:30
delay和OSTimeDly测试效果一样一样的,这是令我费解的地方,

我参考的就是官方给的这个例程,代码如下: ...

你所有的任务里面都有OSCtxSw()吗?我强烈怀疑这就是问题的源泉,这把OS的任务调度整乱套了……
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-7-15 19:24:53 | 显示全部楼层
本帖最后由 tzz1983 于 2024-7-15 19:28 编辑

这个应该是熊仔的STC8移植版.
我几个月前就提示过你了,可以用那个移植版本,
但不要学里面的例程, 他的例程是在证明一些特殊的东西.
(就是在EA=0时也可以切换任务这个功能.)
这是一个很不常用或都本不需要使用的功能. 所以他用了一些特殊的手法.
在你没有彻底了解UCOS前, 你最好忘记那个例程, 用正常的方式来使用OS的功能
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-7-15 19:43:38 | 显示全部楼层
本帖最后由 tzz1983 于 2024-7-15 19:45 编辑

你的编思路也很奇怪, 读个键盘代码很复杂吗, 或者说很耗时吗, 为什么要单独搞个任务去读按键?
本来一个任务就可以做的事情, 分了好几个任务, 然后还搞不懂任务之间的关系.... 很难点透你啊


void Task_xxx(void *p_arg)
{
        if(p_arg);
        while (1)
        {
                static int  js=0;  //用一个静态变量计数, 来记录当前状态已持续的时间.
                int key;
                key = ReadKeyboard();   //读键盘的值;
               
                {
                      根据 key 和 js 的值做出决策, 改变或保持灯和声间. 或复位/改变 js 的值,
                      整个代码就这么完成了, 没必要读个键盘搞个任务, 一会挂起, 一会解除挂起. 有这个切换时间, 几次键盘都读出来了
                }

                js++;
              OSTimeDly(5);   // 5毫秒查询一次已经很快了, 你可以自己设定查询频率
        }
}

回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-7-15 23:36:17 | 显示全部楼层
tzz1*** 发表于 2024-7-15 19:24
这个应该是熊仔的STC8移植版.
我几个月前就提示过你了,可以用那个移植版本,
但不要学里面的例程, 他的例程 ...

我说这代码咋看咋别扭,原来果然是有“骚”操作……
问他参考的是哪个例程,一直也没直接说
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-7-15 23:39:43 | 显示全部楼层
38009*** 发表于 2024-7-15 09:04
您说的对,我也总感觉自己感觉的不对,但是,各种测试后,发现,优先级高的任务就是不能及时切换过来,还 ...

https://www.stcaimcu.com/forum.p ... &extra=page%3D2
几乎每一句都有注释,很适合看不懂代码的
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-7-16 08:28:51 | 显示全部楼层
hsr*** 发表于 2024-7-15 17:51
你所有的任务里面都有OSCtxSw()吗?我强烈怀疑这就是问题的源泉,这把OS的任务调度整乱套了…… ...

没有,只有任务3语音播报有,我也尝试过把OSCtxSw()去掉,测试没有什么变化,我觉得这个东西可有可无,就暂时保留了,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-7-16 08:33:44 | 显示全部楼层
tzz1*** 发表于 2024-7-15 19:24
这个应该是熊仔的STC8移植版.
我几个月前就提示过你了,可以用那个移植版本,
但不要学里面的例程, 他的例程 ...

感谢指点,我刚开始测试我的程序时,是没有使用里面的东西,后来发现自己根本搞不起来,算了,依葫芦画瓢,先测试玩起来,其他都和裸机程序一样,就是语音播报打断,实现不了状态机所能达到的效果,挂起恢复,这些我也不想用,不用,我也不知道如何处理才好。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:497
  • 最近打卡:2025-04-30 20:48:13
已绑定手机

151

主题

589

回帖

1196

积分

金牌会员

积分
1196
发表于 2024-7-16 08:38:10 | 显示全部楼层
hsr*** 发表于 2024-7-15 23:36
我说这代码咋看咋别扭,原来果然是有“骚”操作……
问他参考的是哪个例程,一直也没直接说 ...

都怪我,不知道如何表达,我原想截图给你看的,后来想不如把相关代码贴出来更直接,哎,结果,还不如说是熊仔的STC32版本修改,我昨天看,官方已经把这个版本给撤销了,更换另一个程序DEMO上来了,这个确实不好用,有好用的资源推荐一下,感谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-7-16 10:27:28 | 显示全部楼层
38009*** 发表于 2024-7-16 08:38
都怪我,不知道如何表达,我原想截图给你看的,后来想不如把相关代码贴出来更直接,哎,结果,还不如说是 ...

你用Keil的学官方更新的那个DEMO就好了呀。
如果用开源工具sdcc的就用我移植的那个呀。
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 06:48 , Processed in 0.249943 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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