新聞中心

        EEPW首頁 > 光電顯示 > 設計應用 > Nios II的LlED顯示屏控制器設計

        Nios II的LlED顯示屏控制器設計

        作者: 時間:2010-04-01 來源:網絡 收藏


        3.1.2 緩存數據的組織
        若要進行特技效果顯示,則當前顯示的數據幀和下一個數據幀存在著某種變換關系。由于CPU只能對顯存進行寫操作,所以需在緩存中劃分出一塊大小和顯存相等、地址一一對應的區域screen,用于存儲當前顯示的數據幀信息。如果各窗口之間存在重疊現象,且特技數據處理運算直接在screen區域進行,則窗口重疊部分信息可能發生混亂。故在緩存中再為每一個窗口劃分出一塊存取空間(part 1,part 2,…,part n),用于存儲本窗口顯示的前一幀數據信息。在特技數據處理運算時,先在part區域處理各窗口的數據信息,將轉換完的數據送往各窗口在screen區域中所對應地址的存取空間,最后將screen中的數據寫入地址對應的顯存。
        3.2 讀取CF卡軟件
        任務1負責將CF卡上的數據讀取到SDRAM中,供其他任務使用。在程序中使用了1個指針(*pwmdata),為數據文件在SDRAM中分配空間。在文件系統初始化時,首先調用CF卡初始化函數IDE_initialize()判斷CF卡是否存在。若存在,則讀取文件系統的基本信息。通過調用函數FS_SearchFile(char*FName,FS_TFile*R,unsigned char dir)來查找需要讀取的文件是否存在,若存在,則通過指針(*pwmdata)為數據文件在SDRAM中分配一個緩沖區。讀取時,每次讀取一個扇區,直到將數據全部讀取到sDRAM中。
        部分程序源碼如下:


        3.3軟件總體
        基于以上數據結構,軟件的流程如圖5所示。系統首先進行初始化操作,然后從Flash中讀取參數,進行參數初始化。接著建立任務TaskControt(),其優先級比各窗口顯示任務都要高,主要用于實時管理各窗口顯示任務,每個窗口的顯示由單個窗口顯示任務來控制。窗口顯示任務根據各窗口顯示方式的不同,在其對應的part存儲區域進行下一幀數據的處理運算,然后調用窗口顯示子任務進行顯示。在完成一幀數據的顯示后,調用一次OSTimeDlyHMSM()使當前任務進入等待狀態,下一個優先級最高并進入了就緒態的任務,立刻被賦予了CPU的控制權,由此完成窗口顯示任務之間的切換。任務TaskControl()定期查詢Reset是否有效,若有效則刪除原來建立的任務,重新讀取窗口數,建立新任務,啟用各個窗口顯示任務Task_i。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永春县| 房产| 页游| 汉源县| 德江县| 潞城市| 永平县| 岢岚县| 磐安县| 蓬安县| 泽库县| 疏勒县| 定边县| 龙胜| 河北区| 张家川| 北票市| 鹿泉市| 息烽县| 县级市| 忻城县| 安远县| 林西县| 平陆县| 福海县| 清新县| 象山县| 阳高县| 泸溪县| 海兴县| 犍为县| 扬州市| 治多县| 兴城市| 建宁县| 锦屏县| 赫章县| 临夏市| 收藏| 屯留县| 东城区|