- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任课教师:黄静
指导老师:汪泓
《嵌入式技术》
(2011-2012学年第2学期)
实 验 报 告
实验名称 综合实验
专业班级 09通信(1)班
学生姓名 张雯婷
学生学号
实验21 综合实验
实验目的
学习编写一个比较复杂的应用程序的方法及其框架结构,结合以前几个实验中所学到的知识,实现一个综合的应用。
二、实验内容
用一个列表框控件作为主菜单,菜单的每个条目表示一种功能,通过键盘可以选择如下功能:显示BMP图片、设定系统时间。同时,使用文本框控件作为系统的一个状态条,显示提示信息和系统的时间。
预备知识
1、用ARM SDT 2.5或ADS1.2集成开发环境,编写和调试程序的基本过程。
2、基于uCOS-II操作系统的应用程序的框架结构。
3、会使用消息循环响应键盘消息。
4、会使用文本框控件和列表框控件。
5、会控制系统的时钟和多线程编程。
6、会使用系统的绘图函数显示图片。
7、会使用系统的文件相关函数列出指定类型的文件。
实验设备及工具
硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上。
软件:PC机操作系统win98、Win2000或WinXP、ARM SDT 2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。
实验步骤
新建工程,将“Exp21综合实验”中的文件加入工程。
2、打开Main.c文件,编辑Main_Task任务中的代码,使系统启动的时候,创建一个列表框作为系统的选项菜单,添加两个字符串到列表框中作为功能菜单项,包括:“绘制图形”、“设置时间”。创建两个文本框,其中一个作为系统的状态提示,另一个用来显示系统时间。启动消息循环,响应键盘消息(OSM_KEY)和列表框被改变的消息(OSM_LISTCTRL_SELCHANGE)。Main_Task的流程如图5-1所示。
3、在Main_Task任务中再次创建一个新的任务,此任务负责实时的更新显示系统的时间。其流程图如图5-2所示。
提示:
1)用CreateTextCtrl()函数创建文本框,SetTextCtrlText()函数设置文本框中的内容。
2)用CreateListCtrl()函数创建列表框,ReLoadListCtrl()函数装载一组字符串。使用ListCtrlReMoveAll()函数删除列表框中所有文字。
3)使用OSTaskCreate()来创建用户任务。在uCOS-II系统中,任务的优先级是不能相同的。比如:Main_Task任务的优先级是12,Key_Scan_Task任务的优先级是56。目前使用的uCOS-II的版本只支持64个任务,包括8个系统任务,用户可以使用的任务是56个。创建用户任务的时候,需要选择合适的任务优先级(比如:14)。
4)用SetTextCtrlEdit()函数设置文本框是否处于编辑状态,使用TextCtrlDeleteChar()和AppendChar2TextCtrl()函数在文本框中删除和追加字符。
5)键盘消息的类型pMsg-Message是OSM_KEY,列表框选择改变消息类型是OSM_LISTCTRL_SELCHANGE。
6)使用Rtc_IsTimeChange()函数,判断系统的时钟对应的某一位是否改变。用Rtc_Format()格式化系统的时钟格式得到Unicode字符串,可以方便的显示到文本框控件里。
7)可以使用一个函数指针数组装载系统的各个功能(绘制图形、设置时间)函数,便于管理。如下面的程序所示:
void *MainFunction[]={(void*)OnDrawBmp,(void*)OnSetTime};
其中,OnDrawBmp,OnSetTime函数就是对应的“绘制图形”、“设置时间”功能函数,可以使用如下程序所示的方法调用指定序列的函数:
( (void (*)(void)) (MainFunction[pMainListCtrl-CurrentSel]) )();
其中,pMainListCtrl指向系统主功能列表框的指针, CurrentSel是当前条目序号。
8)和RTC设置有关的函数放在SetTimeArea.c文件中,确定改变时间后用Set_Rtc_Clock()和Set_Rtc_Date()设置RTC硬件。
9)图形模式下在控件中显示汉字同样需要Unicode字符串,但没有现成的函数可以将汉字内码转换为Unicode码,
文档评论(0)