• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > 一種高效DSO波形顯示算法的實現

    一種高效DSO波形顯示算法的實現

    作者: 時間:2011-07-26 來源:網絡 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/161750.htm

    d.JPG



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 叶城县| 八宿县| 丘北县| 三都| 广汉市| 江口县| 株洲县| 白山市| 政和县| 祁阳县| 鲁山县| 石狮市| 新竹县| 天气| 获嘉县| 达拉特旗| 江都市| 阿尔山市| 康马县| 鄱阳县| 仪陇县| 光山县| 西宁市| 定州市| 普兰县| 庆城县| 东丽区| 鹤岗市| 灌云县| 运城市| 新和县| 民乐县| 龙门县| 平和县| 闻喜县| 鹿邑县| 哈尔滨市| 永泰县| 资中县| 赤水市| 吉木萨尔县|