|
本帖最后由 jerryxiaodoudou 于 2014-6-19 21:28 编辑
说好了要认真研究RobotC(以下简称“RC”)却一直没有动工,主要是因为这次因为很多原因没能参加FTC(太遗憾了),用NXC什么的已经够了。听参赛的同学回来说比赛非常坑,在西南赛的时候机器人(包括其他队的机器人)经常中途死机,在全国赛的时候FCS又出了问题,动不动就掉线(具体表现和死机一样),“死机”的问题解决不了那不是拼运气吗!?我觉得“死机”问题主要由NXT主机,在机器人上的samantha和FCS共同决定的。由于身边没有samantha和FCS指定的思科路由器,只好从NXT入手。
相信很多队都和我们一样使用的是LabView(以下简称“LV”),在编程的时候早就听学长说过不能编太复杂的程序,否则机器会死机!我觉得这是LV的问题,因为图形化占资源、文件大的问题几乎是通病了。于是我便展开了对RC和LV的比较……
第一轮——编译后程序大小
1.我首先分别编了A马达转10s(编这么简单为了省事)
很明显LV比RC编译后的程序大太多了!
结果我同学不同意说word和txt两个如果文本少的话word和txt的大小差很多,但如果文本很多的话相差就不大了。于是我又做了第二次,增加了代码(图标)量
2.这次我编了执行33次“A马达转5s然后停2s”,有人可能问我为什么不加一些循环结构和选择结构,这是因为LV和RC在编程和编译过程中有很多不同的东西(条条大路通罗马嘛),而且在实际编程中要实现同一目的也有很多编法(比如让马达转5s你可以用wait,也可以用while循环,甚至for循环等等)。鉴于无法控制单一变量的情况下,我选择了直接在上次的基础上翻倍的方法。
LV程序图
LV程序图
可以清楚的看到LV是40.6K
RC程序图
RC程序图
可以清楚的看到是1.33K
这下就清楚了——RC的编译后程序比LV的编译后程序精简,在电脑上的当然也是。程序太大是会导致机器人死机的,有次我用NXT-G编了一个七、八十K的程序,机器人动不动就死机……所以说在FTC中用RC死机的可能性应该更小
|
|