本帖最后由 一只风筝 于 2017-2-15 19:12 编辑
这两天在论坛上看到几个帖子,先附上传送门:
http://www.openedv.com/thread-22990-1-1.html
http://www.openedv.com/forum.php ... id=89015&highlight=ϵͳ
感觉哇,程序居然还能怎样写,感觉非常神奇,然后我把这两个帖子的精华合成到一个程序里,再修改了下,感觉还不错。
其实我觉得这东西也不能算一个OS,太简陋了,只有个调度器,其他什么都没有、/囧........
话不多说,先附上程序吧,调度器是基于时间片轮询的机制,延时是状态机机制实现。我试着在精英板跑了两个小灯任务,感觉还不错,道友们可以试试,看有什么问题没
-----------------------------------------------------------分割线---------------------------------------------------------------------------
忘记说了,系统时钟用的滴答定时器,在delay.c文件里,道友们可以注意下
哇,大神,我在很多地方见过你呀,眼熟
我不是大神。。。。。我只是个社会主义接班人
我比较大众脸,所以看起来比较眼熟
创建三个task放到链表中,Scheduler_Tasks中历遍调用所有的task,而在每个task中判断延时是否结束,如果未结束就直接返回,去执行另一个task,如果结束则继续运行后续的代码,如果task后续没有代码,因为Os_Delay宏定义中line = 0, 返回该task开始处继续运行。
一周热门 更多>