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

正文內(nèi)容

基于cortex-m3的觸摸屏計(jì)算器設(shè)計(jì)-資料下載頁

2025-06-22 00:49本頁面
  

【正文】 rue)//運(yùn)算結(jié)束標(biāo)志位 { WidgetRemove((tWidget *)amp。g_Result)。 strcpy(ucResult , )。 isCalOff = false。 WidgetPaint(WIDGET_ROOT)。 }計(jì)算出不帶小數(shù)點(diǎn)的數(shù)最重要代碼如下:outputNumber = outputNumber *10 + slResult。在顯示結(jié)果的時候,將利用sprintf將變量放入字符串中,輸出字符串到顯示屏上。 (2) 小數(shù)點(diǎn)輸入函數(shù),作用是在按下小數(shù)點(diǎn)按鈕后,改變一個記錄小數(shù)點(diǎn)功能標(biāo)志位。改變了這個標(biāo)志位,則數(shù)字輸入函數(shù)中的主要算法則要改變成:outputNumber = outputNumber+(slResult*(pow(10,pointCount)))。以此來輸出帶小數(shù)部分的數(shù)。同時,要規(guī)定標(biāo)志位,在按下小數(shù)點(diǎn)后置為true,確保之后再按小數(shù)點(diǎn)按鈕是鎖死的。直到一次運(yùn)算完成,將標(biāo)志位置false。代碼如下: if(isPointCheck == false){//小數(shù)點(diǎn)未按下 isCalOff = false。 //運(yùn)算開始 strcpy(ucNumber,.)。//輸出小數(shù)點(diǎn) } isPointCheck = true。(3) 運(yùn)算符計(jì)算函數(shù),集中了對四則運(yùn)算符的操作,在最初設(shè)計(jì)運(yùn)算符號功能時,設(shè)想在按下運(yùn)算符號后,立刻輸出運(yùn)算結(jié)果。但發(fā)現(xiàn),其運(yùn)算結(jié)果是當(dāng)前顯示屏輸入的數(shù)字和上一個存儲在數(shù)組中的數(shù)的運(yùn)算結(jié)果。尤其明顯的是,在按下第一個數(shù)字后再按減號,則永遠(yuǎn)輸出一個該數(shù)的相反數(shù)。所以,這個算法是不對的。之后進(jìn)行了一次調(diào)整是,在這個函數(shù)里定義一個標(biāo)志位。每一次按下運(yùn)算符后,僅做一個運(yùn)算符標(biāo)志位的改變,并且再下次按下運(yùn)算符后,根據(jù)標(biāo)志位,將當(dāng)前輸入的數(shù)和數(shù)組中存儲之前的數(shù)進(jìn)行一個運(yùn)算,之后的輸出結(jié)果就是正確的。 根據(jù)標(biāo)志位進(jìn)行計(jì)算代碼(4)初始化功能函數(shù)。即為了實(shí)現(xiàn),在計(jì)算完成后,對整個數(shù)據(jù)內(nèi)存進(jìn)行回收,資源處理、將之前的計(jì)算結(jié)果清零,計(jì)數(shù)器清零的操作。也包含了一個對該次數(shù)字輸入進(jìn)行修改的功能。其功能實(shí)現(xiàn)如下: if (pWidget == (tWidget *) (amp。g_CButton)) { for(j=0。j=index。j++) { number[j] = 0。 } index = 0。 currentResult = 0。 } if (pWidget == (tWidget *) (amp。g_CEButton)) { number[index] = 0。 }(5) 其他運(yùn)算函數(shù)以及百分號正負(fù)號轉(zhuǎn)換的功能。其中其他的運(yùn)算方法主要實(shí)現(xiàn)了一些例如階乘、log、ln、倒數(shù)運(yùn)算以及三角函數(shù)等等運(yùn)算符號。主要調(diào)用了C函數(shù)的頭文件中的相關(guān)數(shù)學(xué)運(yùn)算函數(shù)進(jìn)行了實(shí)現(xiàn)。在設(shè)計(jì)函數(shù)功能的時候,定義了一系列的全局變量來儲存數(shù)據(jù),并且定義了數(shù)組來儲存之前輸入過的數(shù)據(jù),方便數(shù)據(jù)的運(yùn)算。 相關(guān)操作變量聲明在具體運(yùn)算的時候,遇到的問題,就是關(guān)于顯示位數(shù),以及對于之前的輸入結(jié)果消除的問題。圖 輸出顯示問題圖研究后發(fā)現(xiàn),這是關(guān)于sprintf輸出,類型符號對數(shù)據(jù)位數(shù)保留問題。因?yàn)閒loat類型的輸出是默認(rèn)保留八位的,小數(shù)點(diǎn)后保留6位精度的。而且,在替代前一次的結(jié)果時,在調(diào)用widgetRemove()方法無效是,則直接將后一次的數(shù)據(jù),替換了前一次的數(shù)據(jù)。再沒有保留足夠的空格位數(shù),則會出現(xiàn)如圖所示的情況,前一次的數(shù)據(jù)沒有完全被覆蓋所導(dǎo)致的顯示問題。這其中也牽涉到了sprintf的輸出格式問題。由于sprintf 跟printf 在用法上幾乎一樣,只是打印的目的地不同而已,前者打印到字符串中,后者則直接在命令行上輸出。浮點(diǎn)數(shù)的打印和格式控制是sprintf 的一大常用功能,浮點(diǎn)數(shù)使用格式符”%f”控制,默認(rèn)保留小數(shù)點(diǎn)后6 位數(shù)字,比如: sprintf(s, %f, )。 //產(chǎn)生 但有時我們希望自己控制打印的寬度和小數(shù)位數(shù),這時就應(yīng)該使用:”%”格式,其中m 表示打印的寬度,n 表示小數(shù)點(diǎn)后的位數(shù)。比如: ? sprintf(s, %, )。 //產(chǎn)生: ? sprintf(s, %, )。 //產(chǎn)生: ? sprintf(s, %.3f, )。 //不指定總寬度,產(chǎn)生:所以,為了在實(shí)際操作中取得想要的結(jié)果,就對輸出結(jié)果進(jìn)行了一定長度的保留,以及對輸入數(shù)字的個數(shù)也進(jìn)行了,一次來消除如上的錯誤。但同時,也產(chǎn)生了另一種顯示問題。在非整數(shù)的時候,默認(rèn)保留了六位小數(shù),圖 保留小數(shù)點(diǎn)后位數(shù)過多問題這種情況主要出現(xiàn)在兩塊,其一是數(shù)字轉(zhuǎn)化成數(shù)輸出是,其二是在運(yùn)算結(jié)果中也有這樣的錯誤。其解決方式:在數(shù)字轉(zhuǎn)化輸出時,再按下按鈕時,對兩個變量進(jìn)行賦值,一個整型數(shù),對應(yīng)按鈕對應(yīng)數(shù)字,用來組成數(shù);第二個是字符類型,用來寫入字符串最后可以按位輸出。利用如下代碼:strcat(ucResult,ucNumber)。CanvasTextSet(amp。g_Result,ucResult)。WidgetPaint((tWidget *)amp。g_Result)。 這時,可以自由的按位輸出數(shù)字組成的數(shù)。而不會有小數(shù)點(diǎn)后保留的問題。另一方面,對于輸出結(jié)果的優(yōu)化。有兩種思路,首先對輸出結(jié)果進(jìn)行判斷,如果是整數(shù),則按整型數(shù)的方式進(jìn)行輸出。而非整型數(shù),利用%g作為輸出符號位。其作用就是可以根據(jù)精度(默認(rèn)保留6位小數(shù)),將小數(shù)點(diǎn)后多余的零舍去輸出結(jié)果。sprintf(ucResult,%30g,currentResult)。 而對于結(jié)果大于100000000的數(shù),則通過%e符號位,可以按照科學(xué)計(jì)數(shù)法來輸出結(jié)果,并且可以設(shè)置精度,來保留相應(yīng)的小數(shù)點(diǎn)后數(shù)字。如代碼:if(currentResult 1000000000) { sprintf(ucResult,%,currentResult)。 }這里就是保留兩位的小數(shù)點(diǎn)后數(shù)字的科學(xué)計(jì)數(shù)法輸出,輸出更直觀。 設(shè)計(jì)成果展示其整體效果圖,、最后完成了,一個可以滿足四則運(yùn)算,可以清零初始化的觸屏計(jì)算器。并且添加了一些常用的運(yùn)算方法,如階乘,倒數(shù)和三角函數(shù)功能等。使用簡單方便,滿足了基本的使用需求。5 結(jié)論目前,隨著技術(shù)革新,觸摸屏產(chǎn)品已經(jīng)越來越多的豐富我們的生活了。尤其是隨著移動互聯(lián)技術(shù)的發(fā)展,各種各樣的嵌入式移動互聯(lián)產(chǎn)品開始涌入千家萬戶。PDA、手機(jī)、游戲機(jī)等等已經(jīng)逐漸開始摒棄傳統(tǒng)鍵盤時輸入,轉(zhuǎn)而使用觸摸屏,作為了主流的人機(jī)對話工具。而且隨著電容屏的技術(shù)逐漸成熟,我們可以利用電容屏,進(jìn)行多點(diǎn)觸控,豐富了移動終端的功能性應(yīng)用,也越來越方便各類人群的使用。從過去只是類似商務(wù)通,手寫板的產(chǎn)品,到如今,各種各樣以ipod產(chǎn)品為代表觸摸屏式的隨身產(chǎn)品,也已經(jīng)逐漸替代了傳統(tǒng)的輸入方式的移動產(chǎn)品,象征著一種多元的,給用戶帶來更佳的體驗(yàn)感和方便易用的人機(jī)互動方式,將不可阻擋的成為一種主流技術(shù)。相信隨著未來技術(shù)發(fā)展,想類似電影中的投影式的觸屏鍵盤,立體投影的控制系統(tǒng)等等也能夠出現(xiàn)在千家萬戶的家庭多媒體移動終端中。而本設(shè)計(jì)是基于LM3S9B96開發(fā)板的觸摸屏計(jì)算器。在查閱相關(guān)技術(shù)手冊,學(xué)習(xí)整個開發(fā)板的結(jié)構(gòu)和性能特點(diǎn),對其核心的CortexM3處理器有了一定的了解。同時,在根據(jù)線路圖,學(xué)習(xí)所搭載的觸摸屏的接口模式設(shè)計(jì),和跳線引腳處理,使整個觸摸屏顯示模塊可以使用。同時,本系統(tǒng)的主要設(shè)計(jì)方向是軟件部分的設(shè)計(jì)內(nèi)容。分別是驅(qū)動軟件開發(fā),和應(yīng)用部分開發(fā)。驅(qū)動部分開發(fā),是根據(jù)硬件性能,參照開發(fā)平臺所提供的相關(guān)API函數(shù),完成相應(yīng)的硬件初始化,時鐘設(shè)置,中斷控制設(shè)置,觸摸屏使能,LCD顯示等功能。而應(yīng)用部分開發(fā),則是計(jì)算器的主體功能。在響應(yīng)觸摸屏觸點(diǎn)位置時,能具體的輸出對應(yīng)數(shù)字,函數(shù)運(yùn)算,運(yùn)算結(jié)果輸出等。最后完成了基本滿足設(shè)計(jì)初衷的成品觸屏計(jì)算器,具有簡單的計(jì)算功能,預(yù)算效率較高,操作相對方便,滿足了一般的需求。同時有別于市場上一般的計(jì)算器,而是采用先進(jìn)的觸摸屏技術(shù),LCD顯示方式。展示了現(xiàn)在流行的觸摸屏技術(shù)成果,且讓本人也學(xué)習(xí)了相當(dāng)多的嵌入式開發(fā)編程方面的知識。基本達(dá)到了本次設(shè)計(jì)的目的,即對觸屏技術(shù)的展示,也是對自我的學(xué)習(xí)和充實(shí)的過程。 參考文獻(xiàn)[1] ,裝備制造技術(shù),2010 [2] Hal ,世界電子元器件,2008[3] 劉波文. ARM CortexM3 應(yīng)用開發(fā)實(shí)例詳解 電子工業(yè)出版社 [4] 彭剛, CortexM3的STM32系列嵌入式微控制器應(yīng)用實(shí)踐[M]. 電子工業(yè)出版社,2011[5] CortexM3? Technical Reference Manual. Copyright 169。 2005, 2006 ARM Limited.[6] STMicroelectronics.UM0424 user manualSTM32F10xxxUSB development kit[Z],2008[7] 王小林,[J],計(jì)算機(jī)與數(shù)字工程,2006[8] Stellaris174。 LM3S9B96 開發(fā)套件用戶手冊[9] 竇振中,宋鵬,[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(12):5~9[10] 沈林豐,宋鐵成,[M].北京:電子工業(yè)出版社,2005[11] 莊教峰, 蔡坤, 張墨, 郭磊. 基于ARM9的觸摸屏驅(qū)動程序開發(fā)及LCD顯示程序設(shè)計(jì). 計(jì)算機(jī)系統(tǒng). [12] STMicroelectronics.UM0424 user manualSTM32F10xxxUSB development kit[Z],2008.[13] 吳仲遠(yuǎn), 電阻式觸摸屏的基本結(jié)構(gòu)和驅(qū)動原理[14] LM3S9B96硬件amp。軟件實(shí)驗(yàn)指導(dǎo)說明[15] TI_CortexM3_Stellaris系列微控制器簡介[16] 觸摸屏的發(fā)展歷程和前景 2006[17] [M].北京:電子工業(yè)出版社,2004[18] [M].北京:國防工業(yè)出版社,2004[19]朱銘鋯,[M].北京:電子工業(yè)出版社,2002[20]吳冬梅,[M].北京:北京大學(xué)出版社,2006 附錄軟件設(shè)計(jì)主函數(shù)代碼include inc/include inc/include driverlib/include grlib/include grlib/include grlib/include grlib/include grlib/include drivers/include drivers/include drivers/include include include include define INDEX_NUMNER 100void OnNumber(tWidget *pWidget)。//數(shù)字輸入函數(shù) void OnPoint(tWidget *pWidget)。 //小數(shù)點(diǎn)兒輸入void OnCalculate(tWidget *pWidget)。//運(yùn)算符計(jì)算函數(shù)void OnReset(tWidget *pWidget)。 //初始化,歸零void speCalculate(tWidget *pWidget)。//特殊計(jì)算void PercentCalculate(tWidget *pWidget)。//百分號和正負(fù)號變化Canvas( //Name //pParent //pNext //pChild g_Result, 0, 0, 0, //pDisplay //lX //lY amp。g_sKitronix320x240x16_SSD2119, 0, 0, //lWidth //lHeight //ulStyle 320, 50, CANVAS_STYLE_OUTLINE | CANVAS_STYLE_TEXT | CANVAS_STYLE_TEXT_RIGHT | CANVAS_STYLE_TEXT_OPAQUE, //填充顏色 //外邊框顏色 //文字顏色 //字體 ClrBlack, ClrWhite, ClrWhite, amp。g_sFontCm22b, //pcText //pucImage //pfnOnPaint 0, 0, 0 )。Container( //Name //pParent //pNext //pChild g_NumberContainer, 0, 0, 0, //pDisplay //lX //lY amp。g_sKitronix320x240x16_SSD2119, 0, 50, //lWidth //lHeight //ulStyle 320, 189, CTR_STYLE_OUTLINE, //填充顏色 //外邊框顏色 //文字顏色 //字體 0, ClrWhite, 0, 0, //pcText 0 )。RectangularButton( //Name //pParent //pNext //pChild g_Num1Button, 0, 0, 0, //pDisplay //lX //lY amp。g_sKitron
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1