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

正文內(nèi)容

嵌入式控制器組態(tài)軟件運(yùn)行環(huán)境的設(shè)計(jì)及應(yīng)用學(xué)士學(xué)位論文(參考版)

2025-07-01 14:30本頁(yè)面
  

【正文】 這些底層基本圖形接口函數(shù)包括:void GUI_FillSCR(INT8U dat)void GUI_Initialize(void)void GUI_ClearSCR(void)INT8U GUI_Point(INT32U x,INT32U y,LCDCOLOR color)INT32U GUI_ReadPoint(INT32U x,INT32U y,LCDCOLOR *r。具體程序如下所示:define LCDCOLOR INT8UdefineGUI_LCM_XMAX 240 defineGUI_LCM_YMAX 128 //聲明顯示緩沖區(qū)LCDCOLOR LCDBuf[GUI_LCM_YMAX][GUI_LCM_XMAX/8]其中GUI_LCM_XMAX和GUI_LCM_YMAX是為了編程方便定義的兩個(gè)宏,分別表示液晶X、Y軸的點(diǎn)數(shù)。第二,根據(jù)LCD的分辨率,用之前定義的顏色數(shù)據(jù)類型來(lái)聲明一個(gè)顯示緩沖區(qū)。例如單色液晶屏,每一位數(shù)據(jù)可表示一個(gè)像素點(diǎn)(1代表顯示,0代表熄滅),則可以定義顏色數(shù)據(jù)類型為無(wú)符號(hào)字節(jié)型INT8U,每個(gè)字節(jié)包含+8個(gè)像素點(diǎn),如果是256色液晶屏,則需要一個(gè)字節(jié)表示一個(gè)像素點(diǎn),若是65536色或是更多色的真彩色液晶屏,則需要2個(gè)或更多字節(jié)來(lái)表示一個(gè)像素點(diǎn)。ZLG/GUI根據(jù)不同的功能把接口函數(shù)分別寫在不同的文件中,另外包括3個(gè)重要的頭文件。ZLG/GUI是占用資源小、使用方便的嵌入式系統(tǒng)簡(jiǎn)易的圖形用戶界面軟件。隨著嵌入式系統(tǒng)的日益發(fā)展,以及32位嵌入式微處理器和圖形顯示設(shè)備的廣泛應(yīng)用,目標(biāo)產(chǎn)品對(duì)GUI的需求越來(lái)越多。這是用于提高人機(jī)交互友好性、易操作性的計(jì)算機(jī)程序,它是建立在計(jì)算機(jī)圖形學(xué)基礎(chǔ)上的產(chǎn)物。本課題選用了ZLG/GUI作為圖形用戶界面軟件,具體的移植工作將在下一小節(jié)中詳細(xì)介紹。}T6963C每條指令的執(zhí)行都是先送入?yún)?shù)(如果有的話),再送入指令代碼,而且每次操作之前須進(jìn)行狀態(tài)字檢測(cè),只有允許接收時(shí)才能向器件發(fā)送命令和數(shù)據(jù)。 LCD_WriteCommand()。 LCD_WriteData(dat2)。 LCD_WriteData(dat1)。下面以帶有兩個(gè)參數(shù)的指令發(fā)送子程序?yàn)槔?,?lái)說(shuō)明驅(qū)動(dòng)程序的編寫方法,其它子程序都與其相似且更容易。其中最重要的是指令/數(shù)據(jù)發(fā)送子程序,它把用戶所要完成的操作轉(zhuǎn)換成T6963C能識(shí)別的指令和數(shù)據(jù),用于LCD的顯示控制。表32是T6963C的控制指令碼表: 表 32 T6963C控制指令碼表指令編碼功能設(shè)置控制字01000000設(shè)置文本起始地址 01000001 設(shè)置文本區(qū)寬度 01000010 設(shè)置圖形起始地址 01000011 設(shè)置圖形區(qū)寬度模式設(shè)定 10000000 邏輯“或”模式顯示模式 10011000 設(shè)置純圖形顯示模式寄存器設(shè)置 00100100 設(shè)置地址指針數(shù)據(jù)自動(dòng)讀寫 10110000 設(shè)置數(shù)據(jù)自動(dòng)寫入 10110010 數(shù)據(jù)自動(dòng)讀/寫結(jié)束數(shù)據(jù)讀寫 11000000 數(shù)據(jù)寫入,地址自動(dòng)加1EasyARM2200開發(fā)板上已經(jīng)留有與液晶模塊的接口,可以很方便的寫出LCM的驅(qū)動(dòng)程序。液晶模塊原理框圖如圖36所示:圖 36 RT240128A液晶模塊原理框圖T+6963C是TOSHIBA公司的點(diǎn)陣式圖形液晶控制器,常用語(yǔ)中規(guī)模的單色點(diǎn)陣圖形液晶的顯示控制,其最大特點(diǎn)是具有獨(dú)特的硬件初始化設(shè)置功能,顯示驅(qū)動(dòng)所需的參數(shù)如占空比系數(shù)、驅(qū)動(dòng)傳輸?shù)淖止?jié)數(shù)/行、字符的字體選擇等均由引腳電平設(shè)置。本課題研究的嵌入式組態(tài)軟件將用于配料稱重控制器的開發(fā),在滿足功能要求的前提下,為了盡可能降低成本,縮短開發(fā)周期,這里選用了一塊STN液晶屏RT240128A作為嵌入式組態(tài)軟件人機(jī)界面的顯示設(shè)備。從新任務(wù)的堆棧中恢復(fù)微處理器所有的寄存器值;中斷返回,開始運(yùn)行新任務(wù);}編寫好以上3個(gè)文件后,嵌入式操作系統(tǒng)的移植工作就基本完成了,經(jīng)過(guò)測(cè)試移植代碼,μC/OSII便可以在LPC2210微處理器上順利運(yùn)行了。置系統(tǒng)運(yùn)行標(biāo)志,告訴μC/OSII系統(tǒng)開始運(yùn)行; OSRunning=TRUE。_OSStartHighRdy()函數(shù)對(duì)應(yīng)功能號(hào)為0x01的軟中斷,所以程序進(jìn)入軟中斷后會(huì)跳轉(zhuǎn)到以_OSStartHighRdy為標(biāo)號(hào)的程序段開始執(zhí)行。獲取新任務(wù)的堆棧指針; SP=OSTCBHighRdyOSTCBStkPtr。 OSTCBCur=OSTCBHighRdy。調(diào)用鉤子函數(shù)OSTaskSwHook()。由于源代碼較長(zhǎng),這里只給出示意性代碼。在本移植中,當(dāng)系統(tǒng)調(diào)用OS_TASK_SW()時(shí),會(huì)立即插入一條SWI軟中斷指令,使微處理器進(jìn)入管理模式的軟中斷程序。最后彈出堆棧,軟中斷返回。在得到了相應(yīng)指令集的SWI指令后,按照指令編碼格式獲取包含在指令中的軟中斷功能號(hào),通過(guò)此功能號(hào)分別執(zhí)行不同的軟中斷功能。然后從SWI指令的相應(yīng)位段中獲取軟中斷功能號(hào),為了取得功能號(hào),必須準(zhǔn)確的找到SWI指令。1.軟中斷匯編接口當(dāng)系統(tǒng)發(fā)生軟中斷時(shí),程序計(jì)數(shù)器PC會(huì)根據(jù)中斷向量表中所指的地址,跳轉(zhuǎn)到SoftwareInterrupt處開始執(zhí)行程序。功能號(hào)為0x00的OS_TASK_SW()和0x01的OSStartHighRdy()2個(gè)軟中斷接口函數(shù),因?yàn)樾枰鞔_的堆棧結(jié)構(gòu),而且它們所調(diào)用的任務(wù)切換程序本身也就是使用匯編編寫的。模式轉(zhuǎn)換函數(shù)可以在應(yīng)用程序編寫的任何時(shí)候使用,方便用戶快速的改變微處理器模式,訪問(wèn)某些特殊資源。部分程序如下:OS_ENTER_CRITICAL的內(nèi)嵌匯編代碼:__asm{MRS R0,SPSRORR R0,R0,NoIntMSR SPSR_c,R0}OS_EXIT_CRITICAL()的內(nèi)嵌代碼:__asm{MRS R0,SPSRBIC R0,R0,NoIntMSR SPSR_c,R0}功能號(hào)為0x80、0x80x80x83的4個(gè)軟中斷接口函數(shù)是根據(jù)ARM核有7種處理器模式和支持2種指令集的特點(diǎn),為本移植專門增加的底層接口函數(shù)。本移植使用了功能號(hào)為0x00x03的兩個(gè)軟中斷接口函數(shù)來(lái)實(shí)現(xiàn)其功能。由于程序較長(zhǎng),在這里就不一一例舉了,僅就重點(diǎn)部分做詳細(xì)介紹。Return(stk)。 /*r1*/*stk=(unsigned int)pdata。 /*r3*/*stk=0。 /*r5*/*stk=0。 /*r7*/*stk=0。 /*r9*/*stk=0。 /*r12*/*stk=0。 /*pc*/*stk=(OS_STK)task。 /*’opt’沒(méi)有使用,作用是避免編譯器警告*/stk=ptos。本移植的任務(wù)堆棧結(jié)構(gòu)如圖352.根據(jù)堆棧結(jié)構(gòu)圖可以寫出OSTaskStkInit()函數(shù)代碼如下:OS_STK *OSTaskStkInit(void (*task)(void *pd),void *pdata, OS_STK *ptos, INT16U opt){OS_STK *stk。 編寫 本文件中包含了OSTaskStkInit()、軟中斷異常SWI服務(wù)程序以及一些鉤子程序,例如:OSTaskCreateHook(),OSTaskDelHook(),OSTaskSwHook(),OSTaskIdleHook(),OSTaskStatHook(),OSTimeTickHook(),OSInitHookBegin(),OSInitHookEnd(),OSTCBInitHook(),OSTaskStkInit()和軟中斷異常SWI服務(wù)程序是必須的,鉤子程序則并不一定要包含代碼,但必須要聲明。_swi(0x82) void TaskIsARM(INT8U prio)。_swi(0x80) void ChangeToSYSMode(void)。_swi(0x02) void OS_ENTER_CRITICAL(void)。代碼如31表所示:表 31 軟中斷功能號(hào)分配表功能號(hào)接口函數(shù)簡(jiǎn)介 0x00void OS_TASK_SW(void)任務(wù)及任務(wù)切換函數(shù) 0x01void_OSStartHighRdy(void)運(yùn)行優(yōu)先級(jí)最高的任務(wù) 0x02void OS_ENTER_CRITICAL(void)關(guān)中斷 0x03void OS_EXIT_CRITICAL(void) 開中斷 0x80void ChangeToSYSMode(void) 任務(wù)切換到系統(tǒng)模式 0x81void ChangeToUSRMode(void)任務(wù)切換到用戶模式 0x82void TaskIsARM(INT8U prio)任務(wù)代碼是ARM代碼 0x83Void TaskIsTHUMB(INT8U prio)任務(wù)代碼是THUMB代碼_swi(0x00) void OS_TASK_SW(void)。在ADS中,有一個(gè)關(guān)鍵字——swi,用它聲明一個(gè)不存在的函數(shù),則調(diào)用這個(gè)函數(shù)時(shí)會(huì)在調(diào)用的地方插入一條SWI指令,并且可以指定功能號(hào)。雖然ARM處理器核對(duì)于兩種方式均支持,但ADS的C語(yǔ)言編譯器僅支持一種方式,即從上往下長(zhǎng),并且必須是滿遞減堆棧,:defineOS_STK_GROWTH 1 為了使底層接口函數(shù)與處理器狀態(tài)無(wú)關(guān),同時(shí)在任務(wù)調(diào)用相應(yīng)的函數(shù)時(shí)不需要知道函數(shù)位置,本移植使用軟中斷指令A(yù)WI作為底層接口,使用不同的功能號(hào)區(qū)分不同的函數(shù)。程序如下:defineOS_CRITICAL_METHOD 2 微處理器的堆棧生長(zhǎng)方式有遞增和遞減兩種。與所有的實(shí)時(shí)內(nèi)核一樣,μC/OSII在處理臨界段代碼時(shí)需要關(guān)中斷,并在處理完后重新開中斷,以防臨界段代碼被多任務(wù)或中斷服務(wù)子程序破壞。例如INT16U是無(wú)符號(hào)16位整型變量,在本移植中因?yàn)槭?2位處理器,所以實(shí)際被定義為無(wú)符號(hào)短整型(unsigned short)。 typedef INT32U OS_STK。 typedef signed int INT32S; typedef float FP32。 typedef signed short INT16S。LPC2210是基于ARM7TDMIS核的、32位的微處理器,程序如下:typedef unsigned char BOOLEAN。因?yàn)椴煌奈⑻幚砥饔胁煌淖珠L(zhǎng),所以μC/OSII的移植包括了一系列數(shù)據(jù)類型定義,以確保其可移植性。圖34是μC/OSII的軟件體系結(jié)構(gòu)。接口電路原理圖如圖33所示:圖 33 D/A輸出接口電路原理圖 嵌入式操作系統(tǒng)μC/OSII移植所謂移植,就是使一個(gè)實(shí)時(shí)內(nèi)核能在其他的微處理器或微控制器上運(yùn)行。接口電路如圖32所示:圖 32 脈沖信號(hào)檢測(cè)接口電路原理圖 D/A輸出接口電路控制器的D/A輸出采用脈沖寬度調(diào)制方式,由微處理器LPC2210自帶的PWM外設(shè)完成I/。電路原理圖如31所示:圖 31 A/D采樣接口電路原理圖為了使嵌入式控制器能夠測(cè)量控制生產(chǎn)過(guò)程中的傳送速度,本設(shè)計(jì)使用了一個(gè)光電轉(zhuǎn)速傳感器,把速度信號(hào)轉(zhuǎn)化為脈沖信號(hào)輸入控制器。A/D轉(zhuǎn)換器使用LP2210自帶的10位逐次逼近式A/D,測(cè)量范圍是0~。本課題根據(jù)配料稱重控制器的要求重新設(shè)計(jì)了外圍接口電路。接著分析了運(yùn)行環(huán)境所要完成的功能和數(shù)據(jù)處理流程,提出了嵌入式組態(tài)軟件運(yùn)行環(huán)境的設(shè)計(jì)思想,最后詳細(xì)闡述了各個(gè)組態(tài)支撐模塊的設(shè)計(jì)思想。首先詳細(xì)介紹了嵌入式控制器組態(tài)軟件運(yùn)行環(huán)境選用的ARM7微處理器和基于此微處理器的硬件平臺(tái),以及嵌入式實(shí)時(shí)操作系統(tǒng)μC/OSII。應(yīng)用系統(tǒng)開發(fā)人員在嵌入式組態(tài)軟件開發(fā)環(huán)境中根據(jù)需要完成控制算法的選擇和參數(shù)配置,下載至運(yùn)行環(huán)境中就可以使生成的嵌入式控制器按照要求完成控制功能,從而實(shí)現(xiàn)對(duì)外部設(shè)備工作過(guò)程的精確控制和有序的調(diào)度管理。 為了體現(xiàn)嵌入式控制器組態(tài)軟件運(yùn)行環(huán)境的通用性,控制算法模塊應(yīng)該包含多種不同的控制算法,以編號(hào)區(qū)別,讓用戶根據(jù)需要自由地選擇使用適合不同被控對(duì)象的特定算法。在計(jì)算機(jī)科學(xué)中,控制算法要用計(jì)算機(jī)語(yǔ)言描述,代表用計(jì)算機(jī)解一類問(wèn)題精確、有效地方法。然后將采集到的數(shù)據(jù)、頻率值等保存在數(shù)據(jù)管理模塊的數(shù)據(jù)緩沖區(qū)中,由控制算法模塊調(diào)用;再把數(shù)據(jù)管理模塊發(fā)送來(lái)的控制量和命令,通過(guò)PWM等輸出通道送至相應(yīng)設(shè)備,完成系統(tǒng)控制功能。 I/O模塊首先根據(jù)數(shù)據(jù)管理模塊接收到的組態(tài)配置文件中有關(guān)輸入輸出部分的配置參數(shù)來(lái)初始化相關(guān)硬件。在系統(tǒng)運(yùn)行時(shí),數(shù)據(jù)管理模塊也可通過(guò)通信模塊將一些關(guān)鍵數(shù)據(jù)傳送至上位機(jī),以方便工作人員的進(jìn)一步分析。當(dāng)其接收到上位機(jī)要發(fā)送新的組
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1