打印

【斑竹竞选帖】从王婆卖瓜说操作系统与裸奔的关系

[复制链接]
楼主: NE5532
手机看帖
扫描二维码
随时随地手机跟帖
61
冷漠| | 2009-3-31 11:36 | 只看该作者 回帖奖励 |倒序浏览

笑话highgear,别光说空话,来点实际的。

highggear不是要讨论如何裸奔更有意义吗?就这么简单的OS程序应用,请您高手用裸奔程序实现。看看不吹牛的highgear裸奔高手肚子里到底有多少水。

写不出来的是“猪涂口红”。上次长除法煞有介事地挑战学生D,结果当了一回猪,原来自己一点不懂。再上一次,跟1952赌1000元,输了就跑。这种人怎么脸皮那么厚,好像什么都没发生过,这回又出来装懂了。
只有一种解释,你主子在后面逼你呢。你不得不脸皮厚。


/*


**  AT89S52

**  此程序是循环花样显示LED灯

**  有三个显示样式,分别对应下面的三个进程

**  下面的算法中用到了“时间到空间”的转换,使得算法简化不少

**  此程序我已在最小系统板上试验通过。

*/

#include <reg51.h>

#include <rtx51tny.h>


const unsigned char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80

                                               ,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0xFF,0x00};

/*时间到空间的转换,如果table是:

const unsigned char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

则算法和代码会多出一倍来。table数组虽然增加了一倍,算法也随之减少了一半,

好处当然不止在这里体现,下面的进程2也减少了一半*/


//进程0 左->右->左

void LED0 (void) _task_ 0

{

     int i;

     os_create_task(1);//创建进程1

     //os_create_task(2);//创建进程2

     while(1)

     {

            for (i = 0; i < 15; i++) 

            {

                      P1 = ~table;

                   os_wait2(K_TMO,10);//等待30*10000微妙 = 0.3秒

            }

            os_send_signal(1);    //发送Signal信号,激活进程1

            os_wait1(K_SIG);   //等待信号

     }

}


//进程1 全亮->全灭->全亮

void LED1 (void) _task_ 1

{

     int i;

     while(1)

     {

            os_wait(K_SIG,0,0);

            for (i = 0; i < 3; i++)

            {

                      P1 = ~table[15];   //全亮

                   os_wait2(K_TMO,10);

                   P1 =~table[16];       //全灭

                   os_wait(K_TMO,10,0);

            }

         os_send_signal(0);

     }

}


//进程2 两边->中间中间->两边

void LED2 (void) _task_ 2

{

     int i;

     while(1)

     {

            os_wait(K_SIG,0,0);

            for (i = 0; i < 8; i++)

            {

                   P1 =~(table |table[i+7]);  //由于table长度多一倍,省去了一个循环,而且算法也简化了。

                   os_wait(K_TMO,30,0);

            }

            os_send_signal(0);

     }

}


这不是最简的程序,弄着玩的。
highgear别装懂,你来。

使用特权

评论回复
62
潜艇8421| | 2009-3-31 12:11 | 只看该作者

俺准备另开一贴,把你们这些带着私心

打着OS旗号推销单片机的商家喷个稀巴烂!

使用特权

评论回复
63
ljxh401| | 2009-3-31 13:55 | 只看该作者

当系统大了,任务多了

不用OS就是痛苦了
以前做的一个项目 没有会OS 做出来 根本不想再修改
一个小小的修改都会导致很多的问题
用了OS 将他分割为多个小任务
按照事情的紧急 程度来分配优先级 做起来很轻松
痛下决心 将以前的前后台全部移植到OS的程序中
修改 舒服

使用特权

评论回复
64
冷漠| | 2009-3-31 13:59 | 只看该作者

俺也准备另开一贴。

多讲一些使用裸奔的好处和技巧。

主要是highgear 出现在哪里,那里就有难闻的气味。实在受不了。

highgear 一出现,基本是“结贴高手”。所有人捂鼻而逃。肯定那贴长不了。
不信你看,这贴又快结束了。

俺有洁癖。我闪。

使用特权

评论回复
65
冷漠| | 2009-3-31 14:16 | 只看该作者

原来潜艇8421这样的高手也不会用OS?!

 那还是多跟 ljxh401 学学。——会用OS的,必然懂裸奔。

等学会用OS了,才有资格论评OS。是这道理吧。






使用特权

评论回复
66
dld2| | 2009-3-31 15:25 | 只看该作者

说“会用OS的,必然懂裸奔”的人,基本上不懂裸奔。

说“会用OS的,必然懂裸奔”的人,基本上不懂裸奔。

使用特权

评论回复
67
三块石头| | 2009-3-31 17:31 | 只看该作者

还是主帖说的好

用不用OS,是不是要裸奔,还是看任务的需求。
需求太小,用OS反倒是累赘;需求太复杂,裸奔要累死

具体问题具体分析,而不是一味计较OS和裸奔的好坏,这个思路正确~~

使用特权

评论回复
68
lfjwfm| | 2009-3-31 18:31 | 只看该作者

言之有理,呵呵

使用特权

评论回复
69
highgear| | 2009-3-31 21:34 | 只看该作者

哈哈,冷嬷嬷真不愧是怨妇一个

上次拿出一个3个任务出来显摆,自以为多了不起,这次又拿出一个led 灯出来,而且还用来证明骡奔无用,真正真正的笨蛋一个!难怪会有“为什么我们做不出来". 告诉你:一个简单的定时中断就能完成,还用的着os? 这种 LED 流水灯使用os的人绝对是笨蛋!
“最小系统板“,你的最小系统是什么?你的os用掉多少 RAM?

群众的眼睛是雪亮的!从61楼我们可以看到一个自恋的变态,自我欣赏一段自以为了不起,却不知在众人眼里狗P不是的东西。

只要还有mcu还是几十个字节的ram, 要证明骡奔无用,用3个任务的流水灯来证明更是愚蠢的。

最后:






要证明骡奔无用,只能拿出一个复杂无比的方案来比拚,一定要用高速cpu, 聘请海龟工程师,用美国的os, 什么usb, ethernet, bluetooth,wifi,touch screen 能加上的全加上,128M RAM, 8G Flash ROM, 您要是整一单片骡奔,您都不好意思跟人家打招呼!
这么大的系统,得多少钱?我觉得怎么着也得10000吧?10000那是成本!四万起,您还别嫌贵,不打折,您要研究客户的心理,能掏出两万的就不会在乎再多掏两万, 我们做技术的口号就是不求最好,但求最牛! 



使用特权

评论回复
70
hotpower| | 2009-3-31 22:04 | 只看该作者

HotC51失败俺来顶贴~~~

使用特权

评论回复
71
汽车电子| | 2009-3-31 22:17 | 只看该作者

没有最好,只有更好,合适就好。

   开始很多人裸奔的,却要上OS。
   有时候为了节省一点资源,还是要裸奔,且能全盘控制,挺好的。

使用特权

评论回复
72
ljxh401| | 2009-4-1 14:46 | 只看该作者

个人以为 用51做OS是很无聊的事情

我用的是Mega64
就OS就占了2K的ram 剩下的ram刚刚够完成任务用

使用特权

评论回复
73
fish_sman| | 2009-4-1 15:00 | 只看该作者

我有个疑问

我想请问一下,能熟练驾驭os和裸奔的 你们用的os在什么平台?

os 需占用的ram rom 都使用多少? 
编译出来整个程序的ram rom是多少?

我现在工作用的51单片机的程序,
使用消息队列驱动,用面向对象的思想做的人机接口,实时性非常好。
ram 只用了1k,rom 用了54k(没有大量的const)
考虑过如果用os,反倒不大容易实现这么好的效果。

使用特权

评论回复
74
一朝成名| | 2009-4-1 15:07 | 只看该作者

收尾

真要是实现这个功能的话,用的着单片机吗嘿嘿……
 
while(1)
     {
         port1^=0x01;

      }

弄个晶振加个驱动/倍频, 哦耶,完事~!

使用特权

评论回复
75
呆板书生| | 2009-4-1 15:22 | 只看该作者

我再来点技术含量的代码

#define CON_WAVE 10

unsigned int i;

EA=0;

i = 384;
while(--i >0)
     {
         port1^=0x01;
         delay(CON_WAVE);         ;延时一下
      }

i = 17;
while(--i >0)
     {
      delay(CON_WAVE);         ;延时一下
     }

i = 9;
while(--i >0)
     {
         port1^=0x01;
         delay(CON_WAVE);         ;延时一下
      }

....

上述程序,只要修改一下,就可以做一个精确的FSK的输出,

对于这个输出,用裸奔去实现,调试很容易,用OS的也要改为裸奔,

不用MCU就很难做得到。

使用特权

评论回复
76
zhenglixin| | 2009-4-1 19:55 | 只看该作者

re

关系肯定是有的,不要钻牛角尖啊啊

使用特权

评论回复
77
PowerGPS| | 2009-4-1 21:06 | 只看该作者

23楼啊,说话前动动脑子好不好?

   23楼: 因为这一结论表明,该操作系统的质量得到了认证,可以在任何场合中应用。


   浅薄啊浅薄!

   

使用特权

评论回复
78
NE5532|  楼主 | 2009-4-1 21:30 | 只看该作者

老大,咋关闭回帖啊,吵下去没完了。

最惨的是,很多人没抓住重点。

使用特权

评论回复
79
highgear| | 2009-4-1 21:43 | 只看该作者

别关啊,这个帖子很好啊

让大家充分的讨论嘛。

77楼说的好,把认证当回事的人,绝对没有见过世面。小衲都不知签发了多少认证证书,也收到不少认证。

“该操作系统的质量得到了认证,可以在任何场合中应用“,即不知道认证了些什么,也不知道用在何处,就轻易的得出可以在任何场合中应用结论,浅薄啊浅薄!

使用特权

评论回复
80
yysmcu| | 2009-4-2 10:54 | 只看该作者

...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则