打印

分享TI LM3S811开发板使用心得 LM3S811精简版开发板游戏程序

[复制链接]
4465|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiazhifei|  楼主 | 2011-12-8 20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LM3S811精简版开发板游戏程序需求分析看了下这块板子,只有D2,L3~L87个指示灯程序可控,便想着使用这7个指示灯做个游戏程序。

这样的开发板不增加外设的情况下最适合玩打地鼠吧,L3~L8对应电脑按键QAZWSX吧,通过虚拟的232串口与开发板连接。

初步目标是每2秒随机出一只地鼠,在规定时间内没有收到PC发送的信息,则为放跑一只,一分钟内若放跑超过10只,则反馈失败信息。基于带中断的程序实现。

中级目标是想扫雷一样,分三级,初级每2秒出一只地鼠,中级每秒出一只地鼠,高级每半秒出一只地鼠,每次持续时间一分钟,成功之后指示灯闪烁作为奖励,按下user键进入下一等级。基于带中断的程序实现。

高级目标是在中级的基础上,基于UCOS的多任务实现。
LM3S811开发板部分开发环境准备新建一个project

选择一个路径,新建个文件夹C:\WORK\LM3S811\game吧,空文件夹比较好

选择芯片类型

同意自动添加汇编代码

新建文件,编写程序,就起个名字叫game

保存

不喜欢默认的名字,右击,换个名字

双击更改名字

顺便添加刚才创建的game.ckeil不够人性化,点一下add,还要再点一下close

喜欢分类,新建一个组,Lib

选择C:\StellarisWare\driverlib\rvmdk中的driverlib.lib,用人家的函数就得用人家的库

OK,文件添加到此结束

右击设置环境变量,不放在

修改晶振频率

添加调用库文件的路径,免得程序中写上绝对地址

选择烧录接口

选择调试接口

keil不熟悉,这个不太清楚,

对命令行不熟悉,这个也不太清楚

程序总体规划初步:
打地鼠速度很慢,估计每秒最多也就打两三下,在系统节拍中断中随机放地鼠,计数,在UART接收字符中断中灭地鼠,接收PC发送的信息,判断并统计漏掉的地鼠数目,通过UART反馈信息给PC
L3~L8对应电脑按键QAZWSX
      
2011-12-8小结底层肯定要用到LEDUART,我比较懒了,不去核对原理图芯片引脚了,LED就参考C:\StellarisWare\boards\ek-lm3s811\Demo_EK-LM3S811\demo.cUART就参考C:\StellarisWare\boards\ek-lm3s811\uart_echo\uart_echo.c了。
参考的话就得先看懂原来的程序,拿到手的板子默认就是demo.c了,按一下reset键程序重新开始运行,灯闪烁,按一下user,产生中断,中断程序使得全局变量TIME清零,灯闪烁。其中用到定时器timer0,系统节拍SysTick中断。uart_echo.c顾名思义,232输入啥就输出啥,用到UART中断。
今天本来打算依照这两个源程序改编,后来看到这两个demo都是把中断函数的handle放在启动代码中,既然调用Stellaris驱动库,就应该彻底,可以在c中使用*IntRegister(),感觉不太好,还是自己写算了,但总体上应该不会变化。
此外有一个困扰,就是超级终端怎样输入单个字符,要不然使用串口调试助手感觉对格式的支持不太好,不能回车换行,每次发送字符都要点发送或按回车键,自己编程序没暂时那么多精力。
21IC上有周立功的中文Stellaris驱动库用户指南和LM3S811芯片手册,看资料快了不少,感谢。
这周在家呆着还是比较爽,只是老妈在电脑上玩斗地主的优先级属于最高,打算下周上班时,把这板子带去。
【未完待续】

相关帖子

沙发
xiazhifei|  楼主 | 2011-12-8 20:03 | 只看该作者
怎么不支持图片啊,我把word文件放上来吧。怎么不支持图片啊,我把word文件放上来吧。
LM3S811精简版开发板游戏程序2011-12-8.rar (583.11 KB)

使用特权

评论回复
板凳
tianm| | 2011-12-9 14:58 | 只看该作者
用“高级回复”以附件的加载图片

使用特权

评论回复
地板
xiazhifei|  楼主 | 2011-12-13 13:37 | 只看该作者
2012.12.13

对LM2S811的编程

前些天看了不少LM3S811的资料,也跑过几个程序,感觉对它的编程可以分以下几个层面:

1:汇编级操作,直接采用汇编编程。即直接对LM3S811的寄存器操作,需要熟悉芯片Thumb指令以及外设的功能、指令,其基本道理类似于51,Thumb就是增强型的51指令,外设寄存器操作就类似对51定时器的操作。该方法需要记住的指令有几十条,寄存器含义也得记上百个,平时最多也就写写C语言库中没有的功能,或是操作系统最底层移植的代码,不到万不得已时不用。

2:基于Stellaris外设驱动库的C语言操作:。对Coretx m3的操作基本可以用C语言完成,比如加减乘除移位等,效率不谈,易读性明显高出一截,对外设的操作可以分为十几种,每种需要熟悉几条API函数,听说剩下的函数,知道有个啥功能,到用的时候可以查阅其手册,前些天在21ic中找到本中文的,非常开心。采用C语言后在编译器之间的移植能力大为增加,看着IAR比较慢,换成keil,只要简单改下启动代码的汇编,C语言的文件基本不动。

3:基于RTOS的操作。感觉就是Stellaris外设驱动库得升级版,最大的好处就是多任务,高级一点的功能如TCP/IP,GUI等我虽然目前还用不到,即便可以直接采用Stellaris API函数,但再处理还是基于RTOS好。前些天一直在看UCOS II/III,感觉只要改写三四个文件就差不多了,最近又看了下FreeRTOS,官网下载的源代码的portable是基于Coretx M3的,提供的demo就是LM3S811,看样子FreeRTOS更关注LM3S811,只是资料没有UCOS多。

4:基于抽象的模型描述。重装系统后还没有装matlab,没有验证过,其Simulink好像已经支持MSP430,不知道其能否支持LM3S811,有用过的说一声。

使用特权

评论回复
5
fengzhongfeiwu| | 2011-12-14 11:46 | 只看该作者
还是不懂

使用特权

评论回复
6
TA| | 2011-12-14 13:53 | 只看该作者
要好好的看一下 学学

使用特权

评论回复
7
sqcumt123| | 2011-12-19 10:52 | 只看该作者
以前没接触过,好好看一下,谢谢楼主

使用特权

评论回复
8
alber5099| | 2014-10-31 09:07 | 只看该作者
謝謝,我正在做這個

使用特权

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

本版积分规则

1

主题

38

帖子

1

粉丝