嵌入式多參數(shù)監(jiān)護(hù)儀設(shè)計(jì)
清屏對(duì)顯存的每個(gè)單元置零,使屏幕顯示清除。以下為清屏的部分源程序:
Void clrscreen(void)
{ int ;i
unsigned int* pbuffer;
pbuffer=(U32* )frameBuffer1;
for( i=0; i1200; i++)
{
pbuffer[ i]=0;
}
}
3. 3. 4 編制LCD顯示函數(shù)并向LCD設(shè)備寫入數(shù)據(jù)
定義displayLcd()函數(shù)為LCD顯示函數(shù),用于往顯存中寫數(shù)據(jù),經(jīng)過pbuffer送至LCD顯示器,并讓它循環(huán)顯示在LCD顯示屏上。要在LCD上顯示ASCII字符,首先把每個(gè)字符轉(zhuǎn)成一個(gè)16* 16bit的數(shù)組,組成字庫(本次實(shí)現(xiàn)中使用),然后,選擇要顯示的字符,從字庫中提取字符,經(jīng)函數(shù)調(diào)用后,將要顯示的字符送至LCD顯示器,這樣,就在LCD上顯示出ASCII字符。
部分源程序如下:
void displayLCD(void) //LCD顯示函數(shù)
{
unsigned int* pbuffer, temp_data;
int ;i
pbuffer=(U32* )frameBuffer1;
for( i=0; i1200; i++)
{
temp_data=(Buf[ i* 4+3]24)+(Buf[ i* 4+2]
16)+(Buf[*i 4+1]8)+(Buf[*i 4];
//進(jìn)行4bit到32bit的數(shù)據(jù)轉(zhuǎn)換處理
pbuffer[ i]=~temp_data;
Delay(10);
}
}
在添加所用的頭文件的同時(shí),增加對(duì)LCD_Init()函數(shù)、dis-playLCD()等函數(shù)的調(diào)用。
4 網(wǎng)絡(luò)命令處理
在硬件設(shè)計(jì)上采用以太網(wǎng)口,軟件上通過實(shí)現(xiàn)瘦TCP/IP網(wǎng)絡(luò)通 信協(xié)議,針對(duì)嵌入式系統(tǒng)特點(diǎn)對(duì)傳統(tǒng)的TCP/IP協(xié)議棧進(jìn)行裁減[4],讓嵌入式多參數(shù)監(jiān)護(hù)儀支持輕量級(jí)TCP/IP協(xié)議棧而 直接連入Internet。在設(shè)計(jì)將無實(shí)時(shí)要求和費(fèi)時(shí)的TCP/IP協(xié)議簇的處理放在主程序順序循環(huán)中。網(wǎng)絡(luò)程序結(jié)構(gòu)采取順序執(zhí)行和硬件中斷相配合的方式,這種硬件中斷是外部時(shí)鐘中斷,中斷級(jí)別要比非向量模式的FIQ中斷級(jí)別低,在系統(tǒng)空閑時(shí)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交互;對(duì)網(wǎng)絡(luò)接口控制芯片采用查詢方式,即在其他中斷任務(wù)的執(zhí)行間隙處理瘦TCP/IP協(xié)議簇,以犧牲響應(yīng)速度來換取系統(tǒng)可靠性。
考慮到嵌入式醫(yī)用監(jiān)護(hù)儀在窄寬帶不可靠環(huán)境下實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)的要求,決定在網(wǎng)絡(luò)通信協(xié)議的傳輸層中,選用UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。
5 結(jié)束語
由于該網(wǎng)絡(luò)監(jiān)護(hù)儀主要面向醫(yī)院、社區(qū)和家庭,具有成本低、功耗小、數(shù)據(jù)存儲(chǔ)量大、數(shù)據(jù)處理速度快、便于遠(yuǎn)程醫(yī)療、能同時(shí)實(shí)現(xiàn)實(shí)時(shí)多任務(wù)的操作等各項(xiàng)優(yōu)勢(shì),是現(xiàn)代醫(yī)療監(jiān)護(hù)進(jìn)一步智能化、專業(yè)化、小型化、低功耗的發(fā)展新方向,困此具有很廣闊的市場(chǎng)前景。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論