标题: 有没有一本书讲了单片机时间片轮询算法,最好有例程的 [打印本页]

作者: 刚走在路上    时间: 2023-6-13 21:17
标题: 有没有一本书讲了单片机时间片轮询算法,最好有例程的
谢谢大家

作者: Hephaestus    时间: 2023-6-13 22:01
主函数初始化完毕后就搞空while(1)死循环,把查询操作放到定时中断里面,就是时间片,还要什么书来讲???
作者: jjwangxu2008    时间: 2023-6-13 22:49
他问的 可能是  分时操作系统。 不是前后台程序框架
作者: Hephaestus    时间: 2023-6-13 23:24
jjwangxu2008 发表于 2023-6-13 22:49
他问的 可能是  分时操作系统。 不是前后台程序框架

用上了RTOS这个问题就更简单了!

以资料最丰富的μc/OS-II为例,任务调度函数有两个,一个是OSSched(),这个函数是内部的,用户不应该使用,是为了OSTimeDelay等延迟函数服务的,以及用于各种Message Pend函数的timeout服务,由systick定时中断引发任务调度。另一个是OSIntExit(),这个函数由用户放置到中断服务函数的最后,当中断退出后,引发一次任务调度。

那么基于μc/OS-II的应用程序有种很极端的写法,完全不使用OSIntExit()函数,这种状态下的μc/OS-II不是实时操作系统,而是时间片调度的分时系统。
作者: xianfajushi    时间: 2023-6-14 14:49
这个应该是投石问路,到其他论坛问看,如果没有就属于空白.
单片机时间片策略当然是有的,荔枝:数码管显示延时的时间片,由于写法不同,则时间片的利用也不同,
如使用if判断延时是这样的char ys=0;while(1){if(++ys==0){数码管显示}else 其他处理时间;}
如使用傻等式是这样的char ys=0;while(1){数码管显示;while(++ys==0);}那么只有傻傻等呆空循环完成后才能作其他事情;
而上面用判断的则不然,只要判断延时还没到的这段时间就可以执行其他事件,这就是2种不同思路产生不同结果

1.jpg (7.87 KB, 下载次数: 34)

1.jpg

作者: 刚走在路上    时间: 2023-6-14 19:48
jjwangxu2008 发表于 2023-6-13 22:49
他问的 可能是  分时操作系统。 不是前后台程序框架

我就是想搞定用时间片轮询的方法来实现荧光棒的效果,如果用外部中断写的话虽然是可以,但是实际应用中这种方法根本不可取
作者: xianfajushi    时间: 2023-6-15 17:41
看荔枝,通篇不用阻塞等呆。

51hei.png (23.46 KB, 下载次数: 39)

51hei.png

作者: ColeYao    时间: 2023-9-4 19:37
时间触发嵌入式,有书有例程,网上可以搜到,附件是我之前收集的英文版本的,中文版本的超过20M,自行百度吧,自己网上找下!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1