VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: VBProFan

前不久把我用VB编的坦克游戏移植到单片机上了

[复制链接]
 楼主| 发表于 2007-5-28 20:37:25 | 显示全部楼层
它跟VB编的游戏的最大不同之处是过程驱动的,而且没有时钟,不能用一句Randomize Timer了事,所以要使初始的随机数种子随机,还要动动脑筋才行,利用现实世界的随机源

编了这个游戏回头想想,所谓事件驱动的本质还是过程驱动的,一个大循环而已。事件驱动是对过程驱动的封装。

[ 本帖最后由 VBProFan 于 2007-5-28 20:40 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-5-29 08:07:55 | 显示全部楼层
VB是不可能移植到单片机中的,所以这不是移植,顶多算是翻译,真正说来连翻译都算不上,两个完全不同的程序。
另外你出现的错误应该不是RAM不够(更不可能是ROM),你可以优化一下程序,有规划(尽可能不浪费每一个字节)的使用RAM,或许能解决这个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-29 12:18:22 | 显示全部楼层
虽说一个是C,一个是VB,一个是过程驱动,一个是事件驱动,有很大不同,但编程思想完全一样,如果当年没编过VB的话,我不可能那么快就完成这个程序。

“应该不是RAM不够(更不可能是ROM)”
两个都不是是不可能的,我看应该是RAM,它(AT89S52)只有256字节。要优化就把8个bool变量共用一字节,这样节省了RAM,但又浪费了ROM,因此最好还是扩展。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-29 12:20:26 | 显示全部楼层
“VB是不可能移植到单片机中的”
这句话是不对的,如果有人做了个采用VB语言的单片机的编译器,就可以移植了
回复 支持 反对

使用道具 举报

发表于 2007-5-29 12:58:09 | 显示全部楼层
牛人,佩服
回复 支持 反对

使用道具 举报

发表于 2007-5-29 14:23:06 | 显示全部楼层
原帖由 VBProFan 于 2007-5-29 12:20 发表
“VB是不可能移植到单片机中的”
这句话是不对的,如果有人做了个采用VB语言的单片机的编译器,就可以移植了


这毕竟是假设,或许是我孤陋寡闻,至少我还没用过这种编译器,就算采用的是VB,那些硬件方面的支持也不是一件简单的事情。VB最大的短处就是底层硬件,我想没人会傻成这样吧。

另外,代码移植和编程思想是两码事,编程思想和语言无关,就好象我上次在软件发布区的“水管维修工”程序一样,功能及使用方法与手机版的完全相同,但决不是移植,因为那根本就是重新写的一份代码。而代码移植要求是在原来代码的基础上只更改少量与硬件相关的低层代码就能直接编译烧写,不是只继承原来程序的编程思想。最完美的移植是原来的程序能直接按新的环境进行编译。

其实就算你用C写的Windows程序“移植”到单片机中,也得看你的程序是如何实现的。否则移植起来也不容易。我曾经将一个VC写的控制软件移植到ARM中,也花了不少功夫,主要是因为涉及的硬件部份太多了。
回复 支持 反对

使用道具 举报

发表于 2007-5-29 14:35:35 | 显示全部楼层
原帖由 VBProFan 于 2007-5-29 12:18 发表
“应该不是RAM不够(更不可能是ROM)”
两个都不是是不可能的,我看应该是RAM,它(AT89S52)只有256字节。要优化就把8个bool变量共用一字节,这样节省了RAM,但又浪费了ROM,因此最好还是扩展。


记得AT89S52有8K的ROM和256*8bit的RAM,如果你的坦克数量不是太多,应该是足够的,我在一两年前曾用这款芯片做过一个俄罗斯方块的游戏还绰绰有余。关键是合理利用有限资源的每一个字节每一个位。这真是一种编程的艺术,我称之为单片机编程的魅力。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-29 19:29:43 | 显示全部楼层
"如果你的坦克数量不是太多,应该是足够的"

远远不够!起码要十倍才够,这个比俄罗斯方块复杂多了。虽然一共只搞8辆坦克。但是有很多的状态变量,还要接收外部的键盘扫描。
顶楼有源码,你们可以下载下来看看。
回复 支持 反对

使用道具 举报

发表于 2007-5-30 08:20:32 | 显示全部楼层
原帖由 VBProFan 于 2007-5-29 19:29 发表
"如果你的坦克数量不是太多,应该是足够的"

远远不够!起码要十倍才够,这个比俄罗斯方块复杂多了。虽然一共只搞8辆坦克。但是有很多的状态变量,还要接收外部的键盘扫描。
顶楼有源码,你们可以下载下来看看。


不是我不下载,而是下载不了 ,我单位的网管很变态的,整天掏鼓那台服务器,使得我经常一些网站不能下载。
再说我没有测试环境,我公司现在改用ARM了,使用LPC2138和AT91SAM7S245的芯片,感觉是由一个超级富翁(Windows的上G内存)到一个穷光蛋(仅256Byte RAM),然后又到现在的能保证温饱(32k RAM),呵呵,这反差还是挺大的。
回复 支持 反对

使用道具 举报

发表于 2007-5-30 08:30:30 | 显示全部楼层
Windows时的大手大脚惯了,再用256Byte的RAM,这个难度不容易克服啊,首先就是要改变编程习惯和编程风格,还要将所有的全局变量所占用的RAM计算得清清楚楚,不要指望能和Windows程序媲美,毕竟资源有限,该舍的还得舍,毕竟扩充硬件只是一个计划,而修改程序则可以立即实施,呵呵,就当练手而已。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2021-11-28 06:53

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表