[求助] 我项目中都用的是UCOS,需求又改了,不要操作系统,怎么把UCOS改成裸机跑

阳光守望者   2015-2-3 11:35 楼主
我项目中都用的是UCOS,需求又改了,不要操作系统,怎么把UCOS改成裸机跑,单片机NXP1788

回复评论 (13)

为什么要改呢?
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2015-2-3 11:38
就是啊,能开摩托车,干嘛要弃之去骑自行车
点赞  2015-2-3 11:50
难道UCOS不实用???????
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
点赞  2015-2-3 11:58
很简单,把一个一个任务按顺序放入main的死循环中即可。。。。
我的博客
点赞  2015-2-3 12:06
直接把硬件驱动部分提取出来不就行了?
https://bbs.eeworld.com.cn/thread-471646-1-1.html 欢迎加入我的团队
点赞  2015-2-3 13:29
恩,楼上说的有道理,我把用到UCOS的任务删除,放main while死循,把UCOS接口底层提出来
点赞  2015-2-3 13:33
开定时器中断,在中断里切换作物,每个任务运行10ms
点赞  2015-2-3 13:35
楼上正解
So TM what......?
点赞  2015-2-3 21:17
有点麻烦 每个任务不一定能够在10ms完成
生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙 =================================== 做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
点赞  2015-2-3 21:24
引用: chenzhufly 发表于 2015-2-3 21:24
有点麻烦 每个任务不一定能够在10ms完成



裸跑就是这样啊,或者用状态机
点赞  2015-2-3 22:45
每个任务加一个时间片计时,放在定时器中断中扫描,我平时就是这么做的
点赞  2015-2-4 13:54
引用: 晓寒 发表于 2015-2-4 13:54
每个任务加一个时间片计时,放在定时器中断中扫描,我平时就是这么做的



能给个示例的程序吗??
点赞  2015-2-6 22:31
引用: 随风暗影 发表于 2015-2-6 22:31
能给个示例的程序吗??

比如我要建立一个键盘扫描的任务,我先设置一个全局变量   扫描时间戳keyboard_stamp  扫描周期CYCLE,比如CYCLE等于200吧那么我就用一个定时器来做系统节拍函数,定时器中断每执行一次,keyboard_stamp减一,while大循环里放置一个扫描键盘的任务
void scan_keyboard()
{
if(keyboard_stamp) return; //若时间未到,则不执行键盘扫描任务

键盘处理程序;
keyboard_stamp=CYCLE;//重新赋值
}



点赞  2015-2-6 22:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复