新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 繪圖的API函數

        繪圖的API函數

        作者: 時間:2011-11-08 來源:網絡 收藏

        一、 實驗目的
        學習使用嵌入式系統的繪圖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 math.h>。
        ⑸ 為方便繪圖,可使用SetDrawOrg 函數設置繪圖的原點。
        6、用ARM SDT 2.5 編譯、下載并調試上述程序,檢查運行結果
        7、生成發行版本的.bin 文件,通過USB 下載到嵌入式開發板中,運行并檢查輸出結。



        關鍵詞: API函數

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 会昌县| 富川| 桂林市| 南通市| 永和县| 东兴市| 宝应县| 五华县| 酉阳| 团风县| 兰州市| 南投县| 永城市| 韶山市| 平阴县| 潼关县| 陵水| 通海县| 梁平县| 旅游| 金华市| 乌兰察布市| 怀柔区| 扶风县| 蓬溪县| 休宁县| 金华市| 大埔区| 娄底市| 泰顺县| 芒康县| 曲阜市| 吉木乃县| 保康县| 平谷区| 通榆县| 兰考县| 尼木县| 抚宁县| 锡林浩特市| 衡南县|