<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 一種高效DSO波形顯示算法的實(shí)現(xiàn)

          一種高效DSO波形顯示算法的實(shí)現(xiàn)

          作者: 時(shí)間:2011-07-26 來(lái)源:網(wǎng)絡(luò) 收藏

          首先,聲明一個(gè)wavebuff類(lèi)型的指針pdl,pdl指向封裝采樣數(shù)據(jù)的鏈表。如果示波器僅有一個(gè)通道處于工作狀態(tài),則pdl→next指向NULL;如果雙通道同時(shí)工作,則將激活狀態(tài)的通道數(shù)據(jù)封裝于鏈表的頭結(jié)點(diǎn),next指向封裝另一通道數(shù)據(jù)的結(jié)點(diǎn)。以鏈表的方式封裝數(shù)據(jù),靈活方便,節(jié)省內(nèi)存,擴(kuò)展性強(qiáng),如果有其他功能需求可以自由擴(kuò)展鏈表長(zhǎng)度。需要由經(jīng)過(guò)處理的采樣值構(gòu)造系列直線段逼近得到。直線段的參數(shù)由CLINE類(lèi)型的數(shù)據(jù)結(jié)構(gòu)封裝。遮蔽分析主要是為了在兩通道同時(shí)工作的情況下,盡量減少畫(huà)點(diǎn)。清屏和繪圖分析是為了將待擦除線段與待繪制線段進(jìn)行比較,重復(fù)線段保留,多余線段擦除,進(jìn)一步達(dá)到減少畫(huà)點(diǎn)的目的。
          c.JPG
          2.1 構(gòu)造繪圖線段
          畫(huà)函數(shù)是由畫(huà)點(diǎn)函數(shù)按照一定的寫(xiě)出的,不同的繪制在速度和效果上會(huì)有所不同。波形要求達(dá)到波形粗細(xì)均勻,連續(xù),繪制的速度快。示波器每屏600個(gè)離散數(shù)據(jù)。如果僅是將經(jīng)處理后的采樣離散數(shù)據(jù)在LCD對(duì)應(yīng)的位置畫(huà)出點(diǎn)來(lái),波形不是連續(xù)的,而是離散的點(diǎn),且看起來(lái)不清晰。構(gòu)造繪圖線段的作用就是根據(jù)相鄰離散數(shù)據(jù)的大小關(guān)系得到繪制連續(xù)波形的一系列直線段的上下端點(diǎn)數(shù)值,流程圖如圖3所示。其方法如下:定義一個(gè)wavebuff類(lèi)型的指針pdl。如果當(dāng)前點(diǎn)的值大于與之相鄰的下一點(diǎn)的值即pdl→buff[i]>pdl→buff[i+1],那么當(dāng)前點(diǎn)所對(duì)應(yīng)的直線段的上端點(diǎn)值hi=pdl→buff[i],下端點(diǎn)值lo=pdl→buff[i+1]+1;如果pdl→buff[i]pdl→buff[i+1],則hi=pdl→buff[i+1]-1,lo=pdl→buff[i];如果pdl→buff[i]=pdl→buff[i+1],則hi=lo=buff[i]。這樣,離散的點(diǎn)就被一系列直線段所代替,構(gòu)成連續(xù)的波形。波形的區(qū)域有一定范圍,d_limit是顯示區(qū)域的下邊界值;u_limit是上邊界值;如果整個(gè)直線段都超出上下界的范圍,整個(gè)直線段將被舍去,不顯示。如果直線段僅是下端超出下邊界,那么直線段的下端值就被賦為下邊界的值;同理,相反情況下,直線段的上端值就被賦為上邊界的值。

          本文引用地址:http://www.ex-cimer.com/article/161750.htm

          d.JPG



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();