uCGUI示波器軟體模擬示波器觸發電平

2021-06-08 15:03:25 字數 1837 閱讀 7991

今天早上把**的結構重新改了一下,將該宣告的變數函式等和函式原始檔分別放在標頭檔案和點c的原始檔裡,期間遇到了一些不知原因的錯誤,最後試了好幾種方法才弄好,具體原因也不太清楚,總之以後還是這樣做:將變數定義在點c的原始檔,將巨集定義放在標頭檔案,將函式宣告在標頭檔案裡,如果需要將變數extern,那麼請在標頭檔案裡extern。

後來在網上查了查關於標頭檔案的,簡述如下:

1,標頭檔案可以定義所用的函式列表,方便查閱你可以呼叫的函式;

2,標頭檔案可以定義很多巨集定義,就是一些全域性靜態變數的定義,在這樣的情況下,只要修改標頭檔案的內容,程式就可以做相應的修改,不用親自跑到繁瑣的**內去搜尋。

3,標頭檔案只是宣告,不佔記憶體空間,要知道其執行過程,要看你標頭檔案所申明的函式是在哪個.c檔案裡定義的,才知道。

4,他並不是c自帶的,可以不用。

5,呼叫了標頭檔案,就等於賦予了呼叫某些函式的許可權,如果你要算乙個數的n次方,就要呼叫pow()函式,而這個函式是定義在math.c裡面的,要用這個函式,就必需呼叫math.h這個標頭檔案。

下午又試著做了一下示波器的峰峰值測量,頻率測量,觸發電平調節,硬體部分還沒完,所有還是軟體模擬。生成了1500個資料存入記憶體,在生成資料的時候將其最大值和最小值分別存入max和min,最後兩者相減,得到峰峰值vpp。接著是觸發電平的調節,設定乙個slider,然後將它的值設為0到100,假設為上公升沿觸發,用乙個while()語句找到滿足條件的點,然後從這一點開始讀資料並開始輸出波形。為了模擬真實的示波器因為觸發調節不滿足,不停地顯示很亂的波形,我又設定了一段**,當找完1500個點還沒有滿足要求的點,那麼分別從第0個點開始讀520個資料顯示,然後從第5個點讀520個在同乙個起點顯示,再從第10個點開始,再從第15個……
頻率的測量現在還沒想到好的解決辦法。
對於沒有滿足觸發條件的點的情況下,這時訊號的波形很亂很多波形交織在一起,可以看做是很多脈衝,那麼可以測試其上公升沿的個數,這樣來測得一螢幕資料的脈衝個數,然後得到頻率。
void test(void)

else if(pstart[i]>pstart[i+1])

//background();

}gui_dispstringat("the freq is ",600,100);

gui_dispdecat(freq,700,100,9);

freq=0;

}} }

for(j=0;j<=520;j++)

else if(pstart[i]>pstart[i+1])

} gui_dispstringat("the freq(normal) is ",600,200);

gui_dispdecat(freq,700,200,9);

gui_alloc_free(hmemtest);

}

觸發電平為0,從sin函式為0的點開始顯示

觸發電平公升高,具體多少也不清楚,沒有設個edit框顯示它,可以看到波形顯示的起點變了

沒有滿足觸發調節的點,波形重疊,很亂,顯示頻率的值在變(下面的那個the freq(normal) 的還沒想好怎麼測量)

示波器的 模擬示波器和數字示波器的選擇

對於電子愛好者,工程師和技術人員而言,市面上種類繁多的示波器可能會讓大家眼花繚亂。示波器有各種各樣的引數,以及各種各樣的功能,再配合上各種各樣的 確實容易讓人頭大。對初學者而言,讓我們忘記示波器的引數和 還有各種各樣的功能。先問自己幾個問題 1.我需要帶示波器外出嗎?我需要一台便捷的示波器嗎?我需要...

示波器學習筆記(2) 模擬示波器

1 模擬單蹤示波器 單蹤示波器只有乙個訊號輸入口,只能顯示單個訊號,可以看的 測試的資料只有波形 頻率 f 和週期 t 單蹤示波器一般是由顯示電路 垂直 y軸 放大電路 水平 x軸 放大電路 掃瞄與同步電路 電源供給電路等幾部分組成 可以說是最簡單的示波器組成了 a 顯示電路包括示波管及控制電路兩個...

示波器 示波器

示波器的使用 電子示波器又稱陰極射線示波器。它是利用示波管內電子束在電場中的偏轉,顯示電訊號隨時間變化波形的一種觀測儀器,它不僅可以定性觀察電路的動態過程,還可以定量測量電訊號的電壓 電流 週期 頻率 相位等各種引數,配以各種感測器,還可以用於各種非電學量 壓力 聲光訊號等 的測量,是一種用途極為廣...