上一講我們知道“for(i=0;i<30000;i++);”只是延時了大概的一段時間而已,雖然我們可以把30000改變?yōu)槠渌臄?shù)(不能超過65535)來取決他的延時持續(xù)時間,但我們想要延時1秒似乎有點難測出來。那么這一節(jié)我們來教大家如何查看程序代碼的執(zhí)行時間。
1.步驟1
首先我們需要修改軟件中的晶振值為11.0592M,創(chuàng)建工程時默認是24M,我們修改為開發(fā)板上所用的晶振值來達到軟件仿真接近實際硬件的實驗想象。
2.步驟2
在上一講的代碼中我們先 編譯通過 之后點擊“Start/Stop Debug Session”
3.步驟3
接著光標移到21,22行的陰影處點擊出來兩個紅色斷點,在之后點擊Reset
4.步驟4
回到main.c文件,按下Run鍵,此時看到前面運行的一些程序已經(jīng)用去了0.00042752秒
5.步驟5
現(xiàn)在兩個疊加在一起的橫三角指著21行,意思是準備執(zhí)行這條語句,我們再按一下Run,看到時間變?yōu)?.00042860s,所以得出運行21行處的“LED2=0;”這條語句用了0.00042860-0.00042752=0.00000108s,也就是1.08微秒。
6.步驟6
此時的雙橫三角指示箭頭來到22行處,同理此時如果按Run,程序就會開始執(zhí)行“for(i=0;i<30000;i++);”語句。不過我們還需再次在23行處點擊出紅色斷點,這個斷點是為了在運行完“for(i=0;i<30000;i++);”語句時統(tǒng)計所有之前程序花費的時間,不加這個斷點程序就會一直執(zhí)行下去,也就捕捉不到 “for(i=0;i<30000;i++);”語句所花費多長的時間。
現(xiàn)在我們按下Run。
可以看到“for(i=0;i<30000;i++);”這條語句用了 0.16342556-0.00042860=0.16299696s,也就是接近163毫秒。
提醒
此時在調(diào)試模式里修改代碼是沒有作用的,需要我們先按“Start/Stop Debug Session”回到代碼編寫模式,這時修改完代碼再編譯無誤后按照步驟2~步驟6繼續(xù)觀察。
記??!修改代碼要編譯!
記??!修改代碼要編譯!
記?。⌒薷拇a要編譯!
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習題和答疑,點擊了解:
一點編程也不會寫的:零基礎C語言學練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學奧賽或C++選手的 必學C++課程
藍橋杯ACM、信息學奧賽的必學課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導課程