找回密码
 立即注册
楼主: 神农鼎

任务调度方法,【无错,至简】!“多任务分时调度”

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-04-24 09:52:08

0

主题

15

回帖

98

积分

等待验证会员

积分
98
发表于 2025-2-13 10:31:39 | 显示全部楼层
但是这种调度方式没有类似 os_delay()功能,用起来不方便。能改进下?

点评

https://www.stcaimcu.com/thread-16598-1-1.html 可以试试这个,很接近原生C语言的编写方式了  详情 回复 发表于 2025-4-4 07:56
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:372
  • 最近打卡:2025-05-01 10:53:48

12

主题

125

回帖

1685

积分

金牌会员

积分
1685
发表于 2025-2-13 18:22:12 | 显示全部楼层
明月*** 发表于 2025-2-13 10:31
但是这种调度方式没有类似 os_delay()功能,用起来不方便。能改进下?

你说的非常对    这个小系统可以做任务优先级     但公共延时函数没有    谁能写个适合的公共延时函数就完美了   
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-04-24 09:52:08

0

主题

15

回帖

98

积分

等待验证会员

积分
98
发表于 2025-2-21 17:16:36 | 显示全部楼层
tzz1*** 发表于 2024-4-5 22:56
这个例子使用了函数指针, 函数指针是个好东西,
可是我不敢在keilC51, 或keilC251不开全局重入的时候用函数 ...

兄弟厉害啊,几乎都被你说中了。最近在某个项目用了这种轮询机制,用了4个任务,感觉时不时出一些莫名其妙的问题。当程序中的变量或指针变得多的时候,有些任务就调度不起来了。当触发了某些变量时,又突然能调度某个任务。找不到啥原因。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:348
  • 最近打卡:2025-04-30 10:01:53

0

主题

93

回帖

753

积分

高级会员

积分
753
发表于 2025-3-14 09:06:23 | 显示全部楼层
谢谢分享
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-04-14 00:31:51
已绑定手机

5

主题

43

回帖

355

积分

中级会员

积分
355
发表于 2025-4-3 23:44:53 | 显示全部楼层
是三*** 发表于 2024-12-16 17:17
定时器调度和操作系统调度有什么区别啊

它这个不会保存当前任务所用到的寄存器值&运行到哪一行(且一旦有任务里面有个长时间延时的阻塞,那么全局就跟着阻塞了),而OS会保存这些信息随后切换到其他任务。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-04-14 00:31:51
已绑定手机

5

主题

43

回帖

355

积分

中级会员

积分
355
发表于 2025-4-3 23:56:18 | 显示全部楼层
明月*** 发表于 2025-2-13 10:31
但是这种调度方式没有类似 os_delay()功能,用起来不方便。能改进下?

他这种,在任务完成时才能切换。你可以配置一个定时器用作全局延时。

点评

使用状态机+软定时器也是调度任务比较好的方式  详情 回复 发表于 2025-4-4 07:56
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2025-4-4 07:56:18 | 显示全部楼层
明月*** 发表于 2025-2-13 10:31
但是这种调度方式没有类似 os_delay()功能,用起来不方便。能改进下?

https://www.stcaimcu.com/thread-16598-1-1.html
可以试试这个,很接近原生C语言的编写方式了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2218

回帖

5450

积分

版主

积分
5450
发表于 2025-4-4 07:56:49 | 显示全部楼层
王*** 发表于 2025-4-3 23:56
他这种,在任务完成时才能切换。你可以配置一个定时器用作全局延时。

使用状态机+软定时器也是调度任务比较好的方式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:10
  • 最近打卡:2025-04-24 09:52:08

0

主题

15

回帖

98

积分

等待验证会员

积分
98
发表于 7 天前 | 显示全部楼层
王*** 发表于 2025-4-4 07:56
https://www.stcaimcu.com/thread-16598-1-1.html
可以试试这个,很接近原生C语言的编写方式了 ...

厉害。感谢回复,回头我测一下例程。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 20:01 , Processed in 0.212257 second(s), 110 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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