绘图的API函数

绘图的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 下载到嵌入式开发板中,运行并检查输出结。

关于智能温控金奖系统Salus的介绍和分析
燃料电池在军事上的应用
机器人与视觉标定理论详解
河道水位实时监测系统的原理、功能及特点
电瓶修复技术之电池技术的基本知识介绍
绘图的API函数
什么才是真正的元宇宙?
三极管开关电路的基本原理分析
诺基亚7Plus评测:双摄、全面屏你想要的基本都全了
我国5G商用初具规模,加速用户“转网”成当务之急
窄带物联网领域将会只有NB-IoT和LoRa的竞争
周志华:中国人工智能发展具有局部优势,发展迅猛
ADI 公司为宽带通信设备开发提供具有突破性集成度的射频 I
新能源电池产业链及投资机会简析-磷酸亚铁锂
市场开始胶着,DRAM厂商要用降价刺激市场需求
最新MLCommons结果公布 英特尔展现强大AI推理性能
虹科分享|PCAN Router系列—最简单的产品功能演示
炒货机
一文解析LDO(工作原理/基本参数/特性/参考设计)
自组网电台城郊环境远距离速率测试案例