freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm9的貪吃蛇游戲-展示頁(yè)

2025-07-05 14:20本頁(yè)面
  

【正文】 o(pdc,20,480)。 MoveTo(pdc,20,440)。并調(diào)用繪圖上下文設(shè)備完成游戲界面的初始化,顯示關(guān)口,得分和時(shí)間。enum Direction {Up=0,Down=1,Left=2,Right=3}。 OSStart()。Snake_Stack[STACKSIZE1], Snake_Task_Prio)。Main_Stack[STACKSIZE1], Main_Task_Prio)。 LoadFont()。}OSInitUart()軟件初始化1)系統(tǒng)初始化 initOSMessage()。硬件初始化:define ADCCON_FLAG (0x115)define ADCCON_ENABLE_START_BYREAD (0x11)define rADCCON (*(volatile unsigned *)0x58000000)define rADCDAT0 (*(volatile unsigned *)0x5800000C)define PRSCVL (496)define ADCCON_ENABLE_START (0x1)define STDBM (0x02)初始化蛇增加長(zhǎng)度計(jì)數(shù)器=0長(zhǎng)度計(jì)數(shù)器減1,蛇長(zhǎng)加1是否撞到障礙物或者邊框?撞到食物游戲結(jié)束重新開(kāi)始開(kāi)始更新蛇頭和蛇尾加分進(jìn)入下一關(guān)下一關(guān)初始化蛇長(zhǎng)計(jì)數(shù)器賦值更新LCD顯示調(diào)用等待函數(shù),根據(jù)等級(jí)和AD轉(zhuǎn)換 確定等待時(shí)間圖34 游戲任務(wù)流程圖define PRSCEN (0x114)ARMTargetInit()。硬件初始化主要有AD轉(zhuǎn)換器的初始化,LCD的初始化,串口初始化,ARM目標(biāo)板的初始化等,軟件初始化包括了系統(tǒng)初始化,游戲初始化。任務(wù)一程序流程框圖如圖33所示, 該任務(wù)完成對(duì)鍵盤(pán)消息的接收,識(shí)別,并改變相應(yīng)變量任務(wù)二流程圖:如圖34所示,主要功能是控制蛇的速度并在屏幕上顯示蛇的移動(dòng),并完成對(duì)分?jǐn)?shù)、游戲等級(jí)、和游戲用時(shí)的記錄和顯示。任務(wù)二主要功能是控制并在屏幕上顯示蛇的移動(dòng)和速度,并完系統(tǒng)初始化任務(wù)一任務(wù)二等待鍵盤(pán)消息控制蛇移動(dòng)AD采樣LCD顯示圖31 系統(tǒng)結(jié)構(gòu)框圖任務(wù)一,任務(wù)二就緒是否有鍵盤(pán)消息任務(wù)一掛起任務(wù)二運(yùn)行任務(wù)二掛起任務(wù)一運(yùn)行圖32 任務(wù)切換框圖8等待鍵盤(pán)消息是否有按鍵按下識(shí)別是哪個(gè)按鍵是否如果蛇現(xiàn)在的方向是左或者右就把方向改成向上如果蛇現(xiàn)在的方向是左或者右就把方向改成向下如果蛇現(xiàn)在的方向是上或者下就把方向改成向左如果蛇現(xiàn)在的方向是上或者下就把方向改成向右如果游戲是運(yùn)行的則改為競(jìng)爭(zhēng),靜止就改為運(yùn)行246/n圖33 系統(tǒng)主任務(wù)流程框圖成對(duì)分?jǐn)?shù),游戲等級(jí)和其他相關(guān)參數(shù)的記錄和顯示。具體的任務(wù)流程和任務(wù)所要完成的功能如下:在系統(tǒng)啟動(dòng)后,同時(shí)創(chuàng)建兩個(gè)任務(wù),任務(wù)一main_task和任務(wù)二snake_task。貪吃蛇每吃一個(gè)食物分?jǐn)?shù)會(huì)增加,屏幕上顯示得分和游戲所用時(shí)間。貪吃蛇撞到矩形邊界,障礙物或者自己身體的一部分,游戲即結(jié)束,重新開(kāi)始。貪吃蛇由若干連續(xù)黃色方塊構(gòu)成,程序中隨機(jī)出現(xiàn)一些“食物”(用藍(lán)色的方塊表示),貪吃蛇通過(guò)吃“食物”增加自身的長(zhǎng)度并增加相應(yīng)的分值。真正走紅的是該游戲隨諾基亞手機(jī)走向世界。有了這些部件,用戶就可以為ARM系列的RISC處理器編寫(xiě)和調(diào)試自己的開(kāi)發(fā)應(yīng)用程序了。目前支持的硬件調(diào)試器有MultiICE以及兼容MultiICE的調(diào)試工具如FFTICE。提供軟件模擬仿真功能,使沒(méi)有Emulators的學(xué)習(xí)者也能夠熟悉ARM的指令系統(tǒng)。ADS包括了四個(gè)模塊分別是:SIMULATOR;C 編譯器;實(shí)時(shí)調(diào)試器;應(yīng)用函數(shù)庫(kù)。注意GPS 的RS232 需要增加MAX3232芯片來(lái)轉(zhuǎn)換為T(mén)TL 才能引到168Pin 插座上。18.Double DA:設(shè)置兩個(gè)DAC 端口,采用MAX504 接SPI 總線。同時(shí)剩余IO 可以控制CAN 等電路,以節(jié)省CPU 的GPIO 資源。16.DC/STEP 電機(jī)。15.IC 卡插座。13.IDE/CF 卡插座: 英尺的筆記本硬盤(pán)讀寫(xiě)和IDE 模式下的CF 卡讀寫(xiě)。11.POWER SUPPLY、RESET、RTC 等必須資源。10.LED:使用ZLG7290 只驅(qū)動(dòng)8 只小數(shù)碼管。9.PS2 KEYPAD:使用ATMEGA8 單片機(jī)控制2個(gè)PS2 接口和板載17鍵小鍵盤(pán)??梢灾С职逋?bit 或24bit 屏。網(wǎng)卡部分還在局部總線上,其余電路包括168Pin 擴(kuò)展槽都在外部總線。4.3 UART/IrDA:保持2個(gè)RS232 串口,增加1個(gè)RS485 串口,1個(gè)IrDA 收發(fā)器,均從處理器的UART2 引出。3.4 HOST / 1 DEVICE USB 接口:主USB 口擴(kuò)展為4個(gè),由AT43301 構(gòu)成USB HUB,其中電源管理用MIC2525。試驗(yàn)箱基本硬件信息1.S3C2410S Core 小板:采用S3C2410X 處理器,64M NANDFLASH 64RAM。uC/OS II作為一個(gè)源代碼公開(kāi)的操作系統(tǒng),在具體應(yīng)用中穩(wěn)定可靠,并且支持uIP TCP/IP協(xié)議棧、ucGUI等,可擴(kuò)展性強(qiáng),功能強(qiáng)大。市場(chǎng)上主流的嵌入式實(shí)時(shí)操作系統(tǒng)有Vxworks、pSos、WinCE、Linux等,基于實(shí)時(shí)性、成本以及開(kāi)發(fā)難度方面的考慮,我們選擇uC/OS II——開(kāi)放源代碼的嵌入式實(shí)時(shí)操作系統(tǒng)。   對(duì)功能、可靠性、成本、體積和功耗嚴(yán)格要求的嵌入式系統(tǒng)一般由嵌入式微處理器、外圍硬件設(shè)備、嵌入式操作系統(tǒng)以及用戶的應(yīng)用程序等四個(gè)部分組成,其中嵌入式微處理器和嵌入式操作系統(tǒng)分別是其硬件和軟件的核心。為了簡(jiǎn)化系統(tǒng)設(shè)計(jì),uC/OSII規(guī)定所有任務(wù)的優(yōu)先級(jí)不同,因?yàn)槿蝿?wù)的優(yōu)先級(jí)也同時(shí)唯一標(biāo)志了該任務(wù)本身??蓜儕Z型的實(shí)時(shí)內(nèi)核在任何時(shí)候都運(yùn)行就緒了的最高優(yōu)先級(jí)的任務(wù)。所有這些同步對(duì)象都有創(chuàng)建,等待,發(fā)送,查詢的接口用于實(shí)現(xiàn)進(jìn)程間的通信和同步。對(duì)一個(gè)多任務(wù)的操作系統(tǒng)來(lái)說(shuō),任務(wù)間的通信和同步是必不可少的。用戶需要?jiǎng)討B(tài)分配內(nèi)存時(shí),系統(tǒng)選擇一個(gè)適當(dāng)?shù)姆謪^(qū),按塊來(lái)分配內(nèi)存。 uC/OSII中把連續(xù)的大塊內(nèi)存按分區(qū)管理。在ANSI C中是使用malloc和free兩個(gè)函數(shù)來(lái)動(dòng)態(tài)分配和釋放內(nèi)存。中斷發(fā)生的時(shí)間間隔是固定不變的,該中斷也成為一個(gè)時(shí)鐘節(jié)拍。任務(wù)在等待消息、郵箱或者信號(hào)量等事件的到來(lái)的時(shí)候會(huì)進(jìn)入掛起狀態(tài),當(dāng)任務(wù)接到消息以后,則處于就緒狀態(tài)。63為最低級(jí),系統(tǒng)保留了4個(gè)最高優(yōu)先級(jí)的任務(wù)和4個(gè)最低優(yōu)先級(jí)的任務(wù),所有用戶可以使用的任務(wù)數(shù)有56個(gè),每個(gè)任務(wù)都有不同的優(yōu)先級(jí),用戶在創(chuàng)建任務(wù)的時(shí)候定義該任務(wù)的優(yōu)先級(jí)。CPU 硬件相關(guān)部分是用匯編語(yǔ)言編寫(xiě)的、總量約200行的匯編語(yǔ)言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。但由于uC/OSII良好的可擴(kuò)展性和源碼開(kāi)放,這些非必須的功能完全可以由用戶自己根據(jù)需要分別實(shí)現(xiàn)。uC/OSII只是一個(gè)實(shí)時(shí)操作系統(tǒng)內(nèi)核,它僅僅包含了任務(wù)調(diào)度,任務(wù)管理,時(shí)間管理,內(nèi)存管理和任務(wù)間的通信和同步等基本功能。關(guān)鍵詞:μC/OS ARM9 嵌入式 貪吃蛇一 開(kāi)發(fā)環(huán)境簡(jiǎn)介μC /OSII操作系統(tǒng)μC/OSII是一種可移植的,可植入ROM的,可裁剪的,搶占式的,實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核。基于ARM9的貪吃蛇游戲摘要本課程設(shè)計(jì)是使用我們學(xué)習(xí)過(guò)的嵌入式系統(tǒng)的有關(guān)知識(shí),在ARM9嵌入式硬件開(kāi)發(fā)平臺(tái)和μC/OSII的軟件開(kāi)發(fā)框架下,實(shí)現(xiàn)一個(gè)還有AD轉(zhuǎn)換,按鍵,LCD等硬件功能的實(shí)時(shí)多任務(wù)的簡(jiǎn)單貪吃蛇的設(shè)計(jì)。文中首先μC/OSII系統(tǒng)和ARM9進(jìn)行了介紹,然后對(duì)設(shè)計(jì)要求進(jìn)行分析,給出了系統(tǒng)總體上設(shè)計(jì),并對(duì)各個(gè)功能模塊進(jìn)行了介紹,緊接著給出了 系統(tǒng)軟件設(shè)計(jì),最后介紹了系統(tǒng)的調(diào)試方法和測(cè)試結(jié)果。它被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號(hào)處理器。沒(méi)有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡(luò)等額外的服務(wù)。 uC/OSII目標(biāo)是實(shí)現(xiàn)一個(gè)基于優(yōu)先級(jí)調(diào)度的搶占式的實(shí)時(shí)內(nèi)核,并在這個(gè)內(nèi)核之上提供最基本的系統(tǒng)服務(wù),如信號(hào)量,郵箱,消息隊(duì)列,內(nèi)存管理,中斷管理等μC/OSII 是專門(mén)為計(jì)算機(jī)的嵌入式應(yīng)用設(shè)計(jì)的, 絕大部分代碼是用C語(yǔ)言編寫(xiě)的。μC /OSII 中最多可以支持64個(gè)任務(wù),分別對(duì)應(yīng)優(yōu)先級(jí)0~63,其中0 為最高優(yōu)先級(jí)。μC/OS操作系統(tǒng)中每個(gè)任務(wù)可以有5種狀態(tài):休眠態(tài)、就緒態(tài)、運(yùn)行態(tài)、等待或掛起狀態(tài)、中斷態(tài),在任一個(gè)時(shí)候,任務(wù)的狀態(tài)一定是這5種狀態(tài)之一。uC/OSII的時(shí)間管理是通過(guò)定時(shí)中斷來(lái)實(shí)現(xiàn)的,該定時(shí)中斷一般為10毫秒或100毫秒發(fā)生一次,時(shí)間頻率取決于用戶對(duì)硬件系統(tǒng)的定時(shí)器編程來(lái)實(shí)現(xiàn)。 uC/OSII要求用戶在定時(shí)中斷的服務(wù)程序中,調(diào)用系統(tǒng)提供的與時(shí)鐘節(jié)拍相關(guān)的系統(tǒng)函數(shù),例如中斷級(jí)的任務(wù)切換函數(shù),系統(tǒng)時(shí)間函數(shù)。但在嵌入式實(shí)時(shí)系統(tǒng)中,多次這樣的操作會(huì)導(dǎo)致內(nèi)存碎片,且由于內(nèi)存管理算法的原因,malloc和free的執(zhí)行時(shí)間也是不確定。每個(gè)分區(qū)中包含整數(shù)個(gè)大小相同的內(nèi)存塊,但不同分區(qū)之間的內(nèi)存塊大小可以不同。釋放內(nèi)存時(shí)將該塊放回它以前所屬的分區(qū),這樣能有效解決碎片問(wèn)題,同時(shí)執(zhí)行時(shí)間也是固定的。uC/OSII中提供了4種同步對(duì)象,分別是信號(hào)量,郵箱,消息隊(duì)列和事件。uC/OSII 采用的是可剝奪型實(shí)時(shí)多任務(wù)內(nèi)核。 uC/osII的任務(wù)調(diào)度是完全基于任務(wù)優(yōu)先級(jí)的搶占式調(diào)度,也就是最高優(yōu)先級(jí)的任務(wù)一旦處于就緒狀態(tài),則立即搶占正在運(yùn)行的低優(yōu)先級(jí)任務(wù)的處理器資源。隨著信息化技術(shù)的發(fā)展和數(shù)字化產(chǎn)品的普及,以計(jì)算機(jī)技術(shù)、芯片技術(shù)和軟件技術(shù)為核心的嵌入式系統(tǒng)再度成為當(dāng)前研究和應(yīng)用的熱點(diǎn)。 ARM處理器由于其具有小體積、低功耗、低成本、高性能等特點(diǎn),廣泛應(yīng)用在16/32位嵌入式RISC解決方案中,幾乎占有嵌入式微處理器市場(chǎng)分額的75% ,本文選定三星公司生產(chǎn)的一款基于ARM920T核的高性能低功耗SOC芯片S3C2410作為移植方案的硬件平臺(tái)。采用基于ARM9的S3C2410嵌入式微處理器,可以使系統(tǒng)具備高性能的運(yùn)算能力的同時(shí)便于與各種外設(shè)連接擴(kuò)展,簡(jiǎn)化了硬件設(shè)計(jì),維持小型化的同時(shí)降低了系統(tǒng)成本。本系統(tǒng)采ARM9+uC/OS II開(kāi)發(fā)設(shè)計(jì),具有精度高、運(yùn)行穩(wěn)定、實(shí)時(shí)性好、抗干擾能力強(qiáng)、性價(jià)比高的特點(diǎn),可以在各種工業(yè)場(chǎng)合中廣泛應(yīng)用,達(dá)到了設(shè)計(jì)的初衷。2.Double 100M EtherNet網(wǎng)卡:均由AX88796 構(gòu)成,采用現(xiàn)有電路但分配不同地址。USB 從口保持處理器本身的1個(gè)。5.168Pin EXPORT:有一個(gè)168Pin 擴(kuò)展卡插槽,并去掉已經(jīng)被主板上各模塊占用的資源。6.LCD:兼容多種LCD,可采用5 寸256 色屏或8 寸16bit 真彩屏,同時(shí)預(yù)留一個(gè)24bit 接口。7.TouchScr:采用ADS7843,預(yù)備了直接用2410 內(nèi)部ADC 構(gòu)成的轉(zhuǎn)換電路接口8.AUDIO:采用UDA1341,具有放音、錄音等功能。兩個(gè)PS2 可接PC 鍵盤(pán)和鼠標(biāo)。同時(shí)可作IIC 總線實(shí)驗(yàn)。12.ADC:板載3個(gè)電位器和選擇跳線,同時(shí)在板上設(shè)模擬電壓輸入專用接口。14.PCMCIA 和SD 卡插座:由EPM3128A100 CPLD 實(shí)現(xiàn)。由ATMEGA8 單片機(jī)控制。步進(jìn)電機(jī)采用74HC573 擴(kuò)展IO,軟件形成時(shí)序來(lái)控制。17.CAN BUS:設(shè)置1個(gè)CAN 口,采用MCP2510 和TJA1050。19.GPRS/GPS 擴(kuò)展板不做在主板上,單獨(dú)設(shè)計(jì)擴(kuò)展板。3 、 ADS是ARM公司的集成開(kāi)發(fā)環(huán)境,他的功能非常強(qiáng)大。C編譯器效率極高,支持c 以及c++,使工程師可以很方便的使用C語(yǔ)言進(jìn)行開(kāi)發(fā)。配合FFTICE使用,,片內(nèi)運(yùn)行情況盡在掌握。ADS由命令行開(kāi)發(fā)工具,ARM實(shí)時(shí)庫(kù),GUI開(kāi)發(fā)環(huán)境(Code Warrior和AXD),適用程序和支持軟件組成。二 系統(tǒng)設(shè)計(jì)要求 貪吃蛇游戲是一款經(jīng)典的小游戲,它的原型是1976年,Gremlin平臺(tái)推出了一款經(jīng)典街機(jī)游戲Blockade。本課程設(shè)計(jì)有關(guān)貪吃蛇的功能描述:可以通過(guò)嵌入式平臺(tái)的鍵盤(pán)控制游戲,鍵盤(pán)中起作用的是方向鍵(2,4,6,8)和回車鍵,方向鍵控制蛇的上下左右運(yùn)動(dòng),回車鍵控制游戲的繼續(xù)和暫停。游戲分三個(gè)關(guān)口,第一關(guān)沒(méi)有障礙物,第二關(guān)有2個(gè)障礙物,第三關(guān)有四個(gè)障礙物。為了增加難度,加入AD轉(zhuǎn)換器用于控制蛇的運(yùn)動(dòng)速度,這也是本設(shè)計(jì)的創(chuàng)新點(diǎn)。三 系統(tǒng)總體設(shè)計(jì)本設(shè)計(jì)需要?jiǎng)?chuàng)建兩個(gè)任務(wù),系統(tǒng)結(jié)構(gòu)框圖如圖31所示,任務(wù)狀態(tài)切換如圖32所示。任務(wù)一主要功能是等待鍵盤(pán)消息,有鍵盤(pán)消息的時(shí)候判斷是什么鍵盤(pán),并對(duì)相應(yīng)的變量重新賦值。任務(wù)一為主任務(wù),在創(chuàng)建任務(wù)的時(shí)候,賦給它的優(yōu)先級(jí)別比任務(wù)二高,所以任務(wù)一優(yōu)先運(yùn)行,任務(wù)二處于就緒狀態(tài),因?yàn)槿蝿?wù)一主要是等待鍵盤(pán)消息,在無(wú)鍵盤(pán)消息的時(shí)候,任務(wù)一被掛起,這時(shí)候任務(wù)二進(jìn)入運(yùn)行狀態(tài)。四 系統(tǒng)具體功能的實(shí)現(xiàn)1初始化初始化包括了硬件初始化和軟件初始化。系統(tǒng)初始化包括了任務(wù)的建立,信號(hào)量的創(chuàng)建,變量的創(chuàng)建,系統(tǒng)文件初始化,初始化繪圖設(shè)備上下文,系統(tǒng)實(shí)時(shí)時(shí)鐘的初始化和函數(shù)的聲明等,游戲的初始化,包括了有關(guān)參數(shù)屬性的初始化化和游戲界面的初始化。void init_ADdevice(){//初始化 rADCCON=(PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN)。 initOSDC()。 OSTaskCreate(Main_Task, (void *)0, (OS_STK *)amp。 OSTaskCreate(Snake_Task, (void *)0, (OS_STK *)amp。 LCD_ChangeMode(DspGraMode)。enum WN_Type{ TP_Space, TP_Block, TP_Cake, TP_SkBo
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1