關於使用Keil計算程序執行時間
- 打開Keil程序,進入“啟動/停止調試”界面。
- 在需要暫停的地方設置斷點(在該句程序前雙擊)。
- 在程序上方有一行工具欄:此工具欄分別代表復位、運行、停止、步進、步越、步出、運行到光標處等。
- 點擊運行,在斷點處會自動停止,在右方獲取程序執行時間S1。
- 若再次點擊運行,則會在下一次斷點處停止,可獲取時間S2,S2-S1即為兩個斷點間程序執行的時間。
- 若點擊步進,則進入函數內部一條一條執行。
- 若點擊步越,則不進入函數,直接把此函數法當做一條語句執行,也可獲取相同的時間。
關於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