如何計算一段代碼的運行時間

1.指令週期,51系列單片機指令週期是晶振週期的12倍,比如12M晶振,指令週期是1us,每條指令的指令週期是不一樣的。或者不嫌麻煩的話可以去數指令注意:現在的很多MCU是多級流水線,其實這樣計算是不太合適的。

2.用編程軟件直接看設置斷點 然後調試 編譯器可以看到用的時間是多少注意:用軟件仿真,軟件的相關配置一定要正確。

3.用示波器,測試電平翻轉速度。注意:IO口本身就有一個最大翻轉速度。

4.MCU自帶捕獲功能,開始時,引腳輸出高電平,結束時,引腳輸出低電平。這樣只需測出這個引腳的高電平脈寬就可以了。使用STM32定時器的輸入捕獲功能,可以精確的測出高電平脈寬,然後通過串口發送給電腦顯示。 注意:捕獲最小分辨率。 

5.用定時器中斷,進入這個函數,將一個全局變量設爲0,然後開一個合適的定時器中斷頻率,在這個定時器 中一旦檢測到進入此函數,就對全局變量1.最後通過全局變量的值和中斷頻率計算。注意:定時器進出中斷的頻率是有時間開銷的。

個人建議:條件允許,示波器測試最佳,反應的是最接近真實的情況,因爲大多數人對彙編指令的執行時間不是很精通。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章