關於8位AD_DA轉換芯片的采樣率問題


關於使用Keil計算程序執行時間

  1. 打開Keil程序,進入“啟動/停止調試”界面。
  2. 在需要暫停的地方設置斷點(在該句程序前雙擊)。
  3. 在程序上方有一行工具欄:此工具欄分別代表復位、運行、停止、步進、步越、步出、運行到光標處等。

  4. 點擊運行,在斷點處會自動停止,在右方獲取程序執行時間S1。
  5. 若再次點擊運行,則會在下一次斷點處停止,可獲取時間S2,S2-S1即為兩個斷點間程序執行的時間。
  6. 若點擊步進,則進入函數內部一條一條執行。
  7. 若點擊步越,則不進入函數,直接把此函數法當做一條語句執行,也可獲取相同的時間。

關於8位AD/DA轉換芯片采樣率

這里以PCF8591為例。

  • 若不顯示電壓,使用以下語句:
1 val=PCF8591_AD(0);
2 val=val*0.8;
3 PCF8591_DA(val);

 則計算得程序執行時間為0.01911567秒,即采樣率在52左右。

  • 若要加以顯示,即使用以下語句:
 1 val=PCF8591_AD(0);
 2 vo=val*0.01953*100;//經AD轉換后的轉換值乘以精度0.01953,再放大100倍
 3 vo=(int)(vo+0.5)>(int)vo?(int)vo+1:(int)vo;//四舍五入
 4 LCD_show(1,5,((int)vo/100)+0x30);
 5 LCD_show(1,6,'.');
 6 LCD_show(1,7,((int)vo%100/10)+0x30);
 7 LCD_show(1,8,((int)vo%10)+0x30);
 8 LCD_show(1,9,'V');
 9 LCD_show(1,11,val/100+0x30);
10 LCD_show(1,12,val%100/10+0x30);
11 LCD_show(1,13,val%10+0x30);*/
12 val=val*0.8;
13 PCF8591_DA(val);
14 vo=val*0.01953*100;//經AD轉換后的轉換值乘以精度0.01953,再放大100倍
15 vo=(int)(vo+0.5)>(int)vo?(int)vo+1:(int)vo;//四舍五入
16 LCD_show(2,5,((int)vo/100)+0x30);
17 LCD_show(2,6,'.');
18 LCD_show(2,7,((int)vo%100/10)+0x30);
19 LCD_show(2,8,((int)vo%10)+0x30);
20 LCD_show(2,9,'V');
21 LCD_show(2,11,val/100+0x30);
22 LCD_show(2,12,val%100/10+0x30);
23 LCD_show(2,13,val%10+0x30);

計算得程序執行總時間為0.41606988秒,即采樣率為2.5左右。

【注】一般情況下,信號源使用1Hz/3V正弦波電壓。

附件:https://pan.baidu.com/s/1jJv5z18


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM