ARM與μC/OS-II彎管流量計(jì)根據(jù)系統(tǒng)的功能需求,軟件設(shè)計(jì)主要有3個(gè)模塊。分別為無(wú)紙記錄儀功能模塊,大容量存儲(chǔ)模塊和網(wǎng)絡(luò)通信模塊。
ARM與μC/OS-II彎管流量計(jì)帶有無(wú)紙記錄儀功能的顯示模塊中,設(shè)計(jì)有實(shí)時(shí)數(shù)據(jù)曲線顯示,歷史數(shù)據(jù)曲線顯示這兩個(gè)主要圖形顯示的功能。實(shí)時(shí)數(shù)據(jù)曲線的顯示,需要屏幕刷新速度盡可能的快,大于50Hz,這樣人眼就不會(huì)察覺(jué)圖像的閃爍,使得曲線的實(shí)時(shí)移動(dòng)更自然。在實(shí)際的任務(wù)編寫(xiě)中,一屏曲線的顯示需要70個(gè)點(diǎn)的數(shù)據(jù)組成。
ARM與μC/OS-II彎管流量計(jì)如果每更新一次圖像就全屏刷新,處理速度會(huì)比較慢,很明顯出現(xiàn)閃爍現(xiàn)象。所以在這里使用了一個(gè)背景色補(bǔ)畫(huà)原曲線的方法。通過(guò)補(bǔ)畫(huà)舊曲線,畫(huà)新曲線,無(wú)需刷新背景等其他圖形圖像。
ARM與μC/OS-II彎管流量計(jì)這里用到兩個(gè)任務(wù)來(lái)實(shí)現(xiàn)其功能。其中一個(gè)任務(wù)需要先將當(dāng)前采集的70點(diǎn)數(shù)據(jù)轉(zhuǎn)化為坐標(biāo)放入一個(gè)內(nèi)存緩沖區(qū),另一個(gè)任務(wù)是另開(kāi)辟一塊同樣大小的緩沖區(qū),用來(lái)放前1秒的數(shù)據(jù)坐標(biāo),用來(lái)補(bǔ)畫(huà)掉之前的曲線。
當(dāng)ARM與μC/OS-II彎管流量計(jì)顯示曲線任務(wù)執(zhí)行時(shí),將指令和數(shù)據(jù)坐標(biāo)一起通過(guò)串口發(fā)送給液晶。液晶先處理補(bǔ)畫(huà)指令,緊接著處理畫(huà)新曲線指令,兩個(gè)指令之間的時(shí)間做到盡可能zui小,從而達(dá)到要求。
數(shù)據(jù)點(diǎn)坐標(biāo)的采集和時(shí)間中斷這里用到了μC/OS-II操作系統(tǒng)的信號(hào)量。
ARM與μC/OS-II彎管流量計(jì)時(shí)間中斷后,才可以采集數(shù)據(jù),并連同實(shí)時(shí)時(shí)間一起存放到存儲(chǔ)器中,每1s只能保存并顯示輸出一個(gè)數(shù)據(jù),所以時(shí)間中斷和采集存儲(chǔ)構(gòu)成一個(gè)單向同步,用到了信號(hào)量來(lái)使兩個(gè)任務(wù)同步。