LM3S811精简版开发板游戏程序需求分析看了下这块板子,只有D2,L3~L8共7个指示灯程序可控,便想着使用这7个指示灯做个游戏程序。
这样的开发板不增加外设的情况下最适合玩打地鼠吧,L3~L8对应电脑按键QAZWSX吧,通过虚拟的232串口与开发板连接。
初步目标是每2秒随机出一只地鼠,在规定时间内没有收到PC发送的信息,则为放跑一只,一分钟内若放跑超过10只,则反馈失败信息。基于带中断的程序实现。
中级目标是想扫雷一样,分三级,初级每2秒出一只地鼠,中级每秒出一只地鼠,高级每半秒出一只地鼠,每次持续时间一分钟,成功之后指示灯闪烁作为奖励,按下user键进入下一等级。基于带中断的程序实现。
高级目标是在中级的基础上,基于UCOS的多任务实现。
LM3S811开发板部分开发环境准备新建一个project
选择一个路径,新建个文件夹C:\WORK\LM3S811\game吧,空文件夹比较好
选择芯片类型
同意自动添加汇编代码
新建文件,编写程序,就起个名字叫game吧
保存
不喜欢默认的名字,右击,换个名字
双击更改名字
顺便添加刚才创建的game.c,keil不够人性化,点一下add,还要再点一下close
喜欢分类,新建一个组,Lib
选择C:\StellarisWare\driverlib\rvmdk中的driverlib.lib,用人家的函数就得用人家的库
OK,文件添加到此结束
右击设置环境变量,不放在
修改晶振频率
添加调用库文件的路径,免得程序中写上绝对地址
选择烧录接口
选择调试接口
对keil不熟悉,这个不太清楚,
对命令行不熟悉,这个也不太清楚
程序总体规划初步:
打地鼠速度很慢,估计每秒最多也就打两三下,在系统节拍中断中随机放地鼠,计数,在UART接收字符中断中灭地鼠,接收PC发送的信息,判断并统计漏掉的地鼠数目,通过UART反馈信息给PC。
L3~L8对应电脑按键QAZWSX。
2011-12-8小结底层肯定要用到LED和UART,我比较懒了,不去核对原理图芯片引脚了,LED就参考C:\StellarisWare\boards\ek-lm3s811\Demo_EK-LM3S811\demo.c,UART就参考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芯片手册,看资料快了不少,感谢。
这周在家呆着还是比较爽,只是老妈在电脑上玩斗地主的优先级属于最高,打算下周上班时,把这板子带去。
【未完待续】 |