欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機在LCD屏上畫幅頻特性曲線的方法 [打印本頁]

作者: xiaos    時間: 2015-4-1 22:43
標題: 單片機在LCD屏上畫幅頻特性曲線的方法
        單片機畫實時曲線的實現
     如果我們要畫實時曲線也就是隨著時間的不同曲線的值就會有變化。
舉例我們將ADC采集的0-5V電壓值在320*240的屏幕上畫曲線。
     我們使用打點計數法實現。
我們可以開啟一個定時器,如果要求500Ms畫一個點,那么我們就將定時器設置為500ms中斷產生此時在相應的位置畫點。
      如果不考慮其他文字說明,坐標系就是屏的橫豎長度,我們可以模擬彩屏的320就是X軸也就是時間軸,定時器中斷處理函數內會有一個U16的計數量加到320清零,從頭開始畫。屏的240就是電壓值的轉換體現,如果最大值239是5V,0是0V,如果我們采集到一個2V的電壓值,那么他對應的位置是(240/5)*2=96,我們調用畫點函數Draw_line(t,96,Black)就可以畫出該點了,我們將96換成ADc_value的值,就可以簡單的實現畫曲線了。
復雜點我們可以建立坐標系指示,還可以添加文子說明,但是相應的320和240就會變小,就要重新里算了。
      但是對于畫幅頻特性曲線,就要要求幅度是跟隨頻率的不同而增大的,頻率是時間的倒數,時間增大,頻率反而減小。這種曲線的實現待研究。





作者: xiaos    時間: 2015-4-1 22:43
    上一文中研究,在LCD上畫實時曲線已經實現了,現在想改成幅頻特性曲線,經過查資料實現思路如下

幅頻特性曲線是以橫軸為頻率,縱軸為幅度,這里可認為是電壓值。如果是實時曲線,1MS采集一個值將它顯示在屏幕上,實際上它的頻率已固定就是1000HZ,也就是1s中采集1000次,然后計算出1000次數據的平均值這是他在頻率為1000HZ時的幅度值。

        如果我們通過更改變量實現在每1S內采集的次數不相等,不就實現頻率值的變化了嗎。

首先,我們定義個變量u8 FRE_NUM;FRE_NUM=100,然后我們編寫一個函數,GET_ADC_VALUE(u8 channel,u8 times,u8 delayalue);該函數中channel代表ADC采集的通道,times代表采集的次數,delay代表1/times的延時單位為毫秒。舉個例子 1s中采集20次 調用GET_ADC_VALUE(u8 channel,20,50);及頻率為20HZ,

制作一個表格分別顯示10HZ,20HZ,50HZ,100HZ,500HZ下的幅度值。
value=GET_ADC_VALUE(0,10,100);

draw_point(100,value,color);
value=GET_ADC_VALUE(0,20,100);

draw_point(120,value,color);

value=GET_ADC_VALUE(0,50,100);

draw_point(140,value,color);
value=GET_ADC_VALUE(0,100,100);

draw_point(160,value,color);
value=GET_ADC_VALUE(0,500,100);

draw_point(180,value,color);

這樣便可以實現幅頻特性曲線的畫法了。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1