绘图的API函数
一、 实验目的
学习使用嵌入式系统的绘图API 函数。理解绘图设备上下文(DC)在多任务 *** 作系统
中的作用。会使用绘图设备上下文(DC)在屏幕上绘制一个圆角矩形和一个圆。了解绘制
动画防止闪烁的基本原理,可以实现无闪烁的动画。
二、 实验内容
本次实验通过使用嵌入式系统的绘图API 函数,首先,在屏幕上绘制一个圆角矩形和
一个整圆。然后,再在屏幕上无闪烁的绘制一个移动的正弦波。
三、 预备知识
1、用ARM SDT 2.5 集成开发环境,编写和调试程序的基本过程。
2、基于 *** 作系统的应用程序的框架结构。
3、会使用Source Insight 3 编辑C 语言源程序
四、 实验设备及工具(包括软件调试工具)
硬件:ARM 嵌入式开发板、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentumn100 以
上
软件:PC 机 *** 作系统win98、ARM SDT 2.51 集成开发环境、仿真器驱动程序、Source
Insight 3
五、 实验步骤
1、在ARM SDT 2.51 中,使用实验一中创建好的模板,新建一个项目work1。把 *** 作
系统的所需要的头文件(*.h)和库文件(*.alf)加入工程中。
2、用Source Insight 3 创建一个工程,把work1 中的C 语言源文件文件加入。
3、编辑Main.c 文件,在Main_Task 任务中加入代码。使用 *** 作系统的绘图API 函数,
绘制出如图所示的图形。
提示:
⑴ 绘图必须通过使用绘图设备上下文(DC)来实现。绘图设备上下文(DC)中
包括了与绘图相关的信息,比如:画笔的宽度、绘图的原点等等。这样,在多任务系统
中,不同的任务通过不同的绘图设备上下文(DC)绘图才不会互相影响。
⑵ 绘制整圆可以用Circle 函数,绘制直线用Line 函数,绘制圆弧用ArcTo 函数。
调试的过程中可以在每条的绘图函数之后调用OSTImeDly()函数,使系统更新显示,输
出到液晶屏上,具体的细节原因见步骤5 的提示。
⑶ 为方便绘图,可使用SetDrawOrg 函数设置绘图的原点。
⑷ 因为本次实验不用系统的字符显示,所以,可以去掉Main()函数中LoadFont()
函数,以节省系统启动的时间。
4、用ARM SDT 2.5 编译、下载并调试上述程序,检查运行结果
5、在屏幕上无闪烁的绘制一个移动的正弦波。
提示:
⑴ 在 *** 作系统中,液晶显示屏的刷新是通过Lcd_Fresh_Task 任务完成的。绘图
首先是在绘图缓冲区中完成的,然后,系统自动(也可以通过设置绘图设备上下文屏,
不让系统自动刷新)的向Lcd_Fresh_Task 发送的更新消息。其流程图如图所示。
⑵ 因为绘图是在后台进行的,绘制完成之后,再更新到液晶屏上,所以,在绘图
的时候不用担心反覆的擦除屏幕会引起屏幕的闪烁,这样,可以很方便的实现动画无闪
烁的显示。
⑶ 绘制完一次图形以后,必须要使用OSTImeDly()给出一定时间的延时(推荐用
200),同时,使Main_Task 任务主动让出对CPU 的控制权,使Lcd_Fresh_Task 任务可
以完成刷新。
⑷ 因为绘图需要使用sin()函数,所以需要在main.c 中加入#include
⑸ 为方便绘图,可使用SetDrawOrg 函数设置绘图的原点。
6、用ARM SDT 2.5 编译、下载并调试上述程序,检查运行结果
7、生成发行版本的.bin 文件,通过USB 下载到嵌入式开发板中,运行并检查输出结。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)