打印
[Kinetis]

【Kinetis实验】+ 游戏贪吃蛇程序(原创+源码)

[复制链接]
2704|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
首先感谢飞思卡尔的idea评审小组通过了我的方案,也感谢万利电子和跑堂MM为这块板子忙活了这么久。
我尝试用了一些例程现有的模块代码,完成了贪食蛇的程序,这条蛇本身做的比较一般。这是我拍的视频链接http://v.youku.com/v_show/id_XNzg2MjcyMDky.html
求大神轻喷哈!



P40919-200338.jpg (2.85 MB )

P40919-200338.jpg

1tanshishe.rar

1.44 MB

相关帖子

沙发
北斗stone|  楼主 | 2014-9-20 19:54 | 只看该作者
首先申明一下,这些代码虽然不多,但是也经过自己的多次整改,其中很多方案对比了很久,最后决定这么写的,请各位首先不要怀疑我是抄袭之类的,谢谢。如果大家感兴趣,可以接着开发一些好玩的小游戏,让各位在工作之余能够小小地娱乐一下。

P40919-200409.jpg (2.7 MB )

P40919-200409.jpg

使用特权

评论回复
板凳
北斗stone|  楼主 | 2014-9-20 19:56 | 只看该作者
接下来,我想讲讲自己调试过程中的细节:先按照16*16的方块划出坐标系并且画出身体关节,一开始想保留每个关节的坐标,但后来在尝试用二维数组写身体的时候,突然觉得用一条数组也行,于是就保留了首关节的坐标,数组里放的变量表示的是后面一个关节与前面关节的相对位置。
到了这一步,其实还是只用到了一个万利的工程文件。

使用特权

评论回复
地板
北斗stone|  楼主 | 2014-9-20 19:58 | 只看该作者
    首先想要贪吃蛇动起来,需要定时刷屏,改变每个关节坐标,然而万利的定时器例程比较简单所以还不如直接用了在循环中延时。
    当蛇能够动起来了,我又想加入方向控制,这时候硬件上有按键、有触摸按键模块,本来想要用外部中断,用它也是最完美的方向控制,但是貌似没有外部中断的例程。。于是我就只好用触摸按键的那个TSI的例程,整合一下,发现按起来需要长按,确实这也是自己意料之中。

使用特权

评论回复
5
北斗stone|  楼主 | 2014-9-20 20:03 | 只看该作者
    接下来的事情开始痛苦了。。要能够随机生成苹果,就是要产生随机数,从而能够随机生成点,以前用VC,随便一个rand()函数就能产生一个随机数,而用单片机产生伪随机数,确实是我第一次去研究,当然,当时决定做这个贪食蛇的时候没有考虑那么多,但是既然做了,那就要把它做到底了。网上看到最多的还是51的定时器末几位产生伪随机数,其次就是用线性公式生成随机数。当时我想的方法是也先用定时器产生,但是从工程来看却找不到这个寄存器(sorry,原谅我没有翻K20寄存器的datasheet),后来又想找找RTC的寄存器有没有可以的,但是一看貌似只有秒级的,后来还是只用了那个volatile的浮动变量去做随机数种子,去生成一串随机数。确定这个也花了一些时间

使用特权

评论回复
6
北斗stone|  楼主 | 2014-9-20 20:09 | 只看该作者
    后来,点也能随机生成,身体也能变长,还有一堆细节未解决。。
    (1)头碰到身体要挂
    (2)头撞墙要挂
    (3)往前只能左右拐,不能退
    ……
    于是乎,发现其实还是要算出每节身体的坐标。。
    不想伤经动骨,只能修修补补,但是慢慢地,慢慢地会发现,到了最后补啊补实在不补动了,于是一切推翻重。所以其实如果程序已经修补到接下来的修补会很繁琐,不如推翻了重来,重新架构数据框架和算法思路。就好像想学会大乘功夫,必须自废之前所学的武功一样

使用特权

评论回复
7
北斗stone|  楼主 | 2014-9-20 20:16 | 只看该作者
    大家做研发其实都知道,不管硬件软件,细节才是最重要的。就像这个小工程文件,从一个用户的角度感觉这个游戏没有什么逻辑上的难度,然而从开发者的角度,每进行一步就会发现有更多的细节值得去注意。其实无论做啥,感觉本着严谨的态度,把东西做好才对得起自己的艺术。

使用特权

评论回复
8
北斗stone|  楼主 | 2014-9-20 20:16 | 只看该作者
最后其实还想说:申请板子的时候,打算利用闲暇时间做一个和自动控制系统有关的东西,本着将它做成一个产品的目的,准备将申请到的板子用来前期做算法以及外围模块的测试,所以已经作好在这上面打持久战的准备了。然而口说无凭,短期内(活动期间)又要能做些有意义的工程,能给大家带来一些东西,所以我决定先奉上贪吃蛇参与评审。

使用特权

评论回复
9
北斗stone|  楼主 | 2014-9-20 20:19 | 只看该作者
后面的工作,也就是做自控的那个项目,我先在这边挖个坑,我会不定期地更新一些进度,请大家一起监督我哈!先来张快完工的50V,250W电机驱动PCB的截图

捕获.PNG (50.38 KB )

捕获.PNG

使用特权

评论回复
10
北斗stone|  楼主 | 2014-9-20 20:25 | 只看该作者
希望各位大神指出以上各种不足!谢谢了!!!
这是我以前参加飞思卡尔智能车竞赛用Kinetis 60做的直立平衡车http://v.youku.com/v_show/id_XNTQ3NjQxMTMy.html(参考卓晴老师的源代码)
这是用Kinetis 60做的魔方还原系统,骨架参考腐乳鸽的那个(自己做的机械有点烂),程序代码完全是自己码的。求各位看官顶顶撒!http://v.youku.com/v_show/id_XNzE5MDU5OTQw.html

使用特权

评论回复
11
茫茫大士| | 2014-9-20 22:16 | 只看该作者
本帖最后由 茫茫大士 于 2014-9-20 22:18 编辑

不错不错顶一下,代码里还有调试日志

使用特权

评论回复
12
hu_uuu| | 2014-9-21 16:23 | 只看该作者
不错!顶一个

使用特权

评论回复
13
Harvard| | 2014-9-21 20:37 | 只看该作者
编译不了 提示出错.Rebuild target 'Kinetis K20'
compiling main.c...
Application\main.c(1): error:  #5: cannot open source input file "kinetis.h": No such file or directory
compiling gpio.c...
gpio.c: Error:  #5: cannot open source input file "..\Common\Driver\gpio.c": No such file or directory
".\Output\Execute.axf" - 2 Errors, 0 Warning(s).
Target not created

使用特权

评论回复
14
北斗stone|  楼主 | 2014-9-21 21:26 | 只看该作者
Harvard 发表于 2014-9-21 20:37
编译不了 提示出错.Rebuild target 'Kinetis K20'
compiling main.c...
Application\main.c(1): error:  #5 ...

是这样的,万利电子提供的程序里有个common的文件夹,这个文件夹必须和工程文件夹放在在同一个文件夹里的,再试试?

使用特权

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

本版积分规则

31

主题

338

帖子

6

粉丝