繪圖的API函數(shù)
一、 實(shí)驗(yàn)?zāi)康?BR>學(xué)習(xí)使用嵌入式系統(tǒng)的繪圖API 函數(shù)。理解繪圖設(shè)備上下文(DC)在多任務(wù)操作系統(tǒng)
中的作用。會使用繪圖設(shè)備上下文(DC)在屏幕上繪制一個圓角矩形和一個圓。了解繪制
動畫防止閃爍的基本原理,可以實(shí)現(xiàn)無閃爍的動畫。
二、 實(shí)驗(yàn)內(nèi)容
本次實(shí)驗(yàn)通過使用嵌入式系統(tǒng)的繪圖API 函數(shù),首先,在屏幕上繪制一個圓角矩形和
一個整圓。然后,再在屏幕上無閃爍的繪制一個移動的正弦波。
三、 預(yù)備知識
1、用ARM SDT 2.5 集成開發(fā)環(huán)境,編寫和調(diào)試程序的基本過程。
2、基于操作系統(tǒng)的應(yīng)用程序的框架結(jié)構(gòu)。
3、會使用Source Insight 3 編輯C 語言源程序
四、 實(shí)驗(yàn)設(shè)備及工具(包括軟件調(diào)試工具)
硬件:ARM 嵌入式開發(fā)板、用于ARM7TDMI 的JTAG 仿真器、PC 機(jī)Pentumn100 以
上
軟件:PC 機(jī)操作系統(tǒng)win98、ARM SDT 2.51 集成開發(fā)環(huán)境、仿真器驅(qū)動程序、Source
Insight 3
五、 實(shí)驗(yàn)步驟
1、在ARM SDT 2.51 中,使用實(shí)驗(yàn)一中創(chuàng)建好的模板,新建一個項(xiàng)目work1。把操作
系統(tǒng)的所需要的頭文件(*.h)和庫文件(*.alf)加入工程中。
2、用Source Insight 3 創(chuàng)建一個工程,把work1 中的C 語言源文件文件加入。
3、編輯Main.c 文件,在Main_Task 任務(wù)中加入代碼。使用操作系統(tǒng)的繪圖API 函數(shù),
繪制出如圖所示的圖形。
提示:
⑴ 繪圖必須通過使用繪圖設(shè)備上下文(DC)來實(shí)現(xiàn)。繪圖設(shè)備上下文(DC)中
包括了與繪圖相關(guān)的信息,比如:畫筆的寬度、繪圖的原點(diǎn)等等。這樣,在多任務(wù)系統(tǒng)
中,不同的任務(wù)通過不同的繪圖設(shè)備上下文(DC)繪圖才不會互相影響。
⑵ 繪制整圓可以用Circle 函數(shù),繪制直線用Line 函數(shù),繪制圓弧用ArcTo 函數(shù)。
調(diào)試的過程中可以在每條的繪圖函數(shù)之后調(diào)用OSTimeDly()函數(shù),使系統(tǒng)更新顯示,輸
出到液晶屏上,具體的細(xì)節(jié)原因見步驟5 的提示。
⑶ 為方便繪圖,可使用SetDrawOrg 函數(shù)設(shè)置繪圖的原點(diǎn)。
⑷ 因?yàn)楸敬螌?shí)驗(yàn)不用系統(tǒng)的字符顯示,所以,可以去掉Main()函數(shù)中LoadFont()
函數(shù),以節(jié)省系統(tǒng)啟動的時間。
4、用ARM SDT 2.5 編譯、下載并調(diào)試上述程序,檢查運(yùn)行結(jié)果
5、在屏幕上無閃爍的繪制一個移動的正弦波。
提示:
⑴ 在操作系統(tǒng)中,液晶顯示屏的刷新是通過Lcd_Fresh_Task 任務(wù)完成的。繪圖
首先是在繪圖緩沖區(qū)中完成的,然后,系統(tǒng)自動(也可以通過設(shè)置繪圖設(shè)備上下文屏,
不讓系統(tǒng)自動刷新)的向Lcd_Fresh_Task 發(fā)送的更新消息。其流程圖如圖所示。
⑵ 因?yàn)槔L圖是在后臺進(jìn)行的,繪制完成之后,再更新到液晶屏上,所以,在繪圖
的時候不用擔(dān)心反覆的擦除屏幕會引起屏幕的閃爍,這樣,可以很方便的實(shí)現(xiàn)動畫無閃
爍的顯示。
⑶ 繪制完一次圖形以后,必須要使用OSTimeDly()給出一定時間的延時(推薦用
200),同時,使Main_Task 任務(wù)主動讓出對CPU 的控制權(quán),使Lcd_Fresh_Task 任務(wù)可
以完成刷新。
⑷ 因?yàn)槔L圖需要使用sin()函數(shù),所以需要在main.c 中加入#include math.h>。
⑸ 為方便繪圖,可使用SetDrawOrg 函數(shù)設(shè)置繪圖的原點(diǎn)。
6、用ARM SDT 2.5 編譯、下載并調(diào)試上述程序,檢查運(yùn)行結(jié)果
7、生成發(fā)行版本的.bin 文件,通過USB 下載到嵌入式開發(fā)板中,運(yùn)行并檢查輸出結(jié)。
評論