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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2046|回復: 9
收起左側

有什么方法可以獲得單片機中斷服務函數中程序執行的時間?

[復制鏈接]
ID:997026 發表于 2022-5-22 20:42 | 顯示全部樓層 |閱讀模式
大家好!

請問有沒有什么方法可以知道中斷服務函數中程序執行的時間是多少?

比如我有一個單片機定時器中斷,假設中斷函數中有30行程序,那么從進入中斷開始執行第一行程序,到最后一行結束跳出中斷,這中間的時間如何獲得?

現在主要是我定時器中斷設置的是1ms進一次中斷,而我的中斷中的程序比較多(不確定執行時間是否超過1ms,不過按道理1ms也挺長了),想計算實際的程序執行時間,這樣比較保險點。
希望各位大神賜教方法,謝謝!
回復

使用道具 舉報

ID:301191 發表于 2022-5-23 04:01 | 顯示全部樓層
頂一下
回復

使用道具 舉報

ID:776619 發表于 2022-5-23 05:13 | 顯示全部樓層
好象Keil調試功能本來就有這個功能,點運行進中斷程序之前的時間值減去之后的時間值就可以了。
回復

使用道具 舉報

ID:612392 發表于 2022-5-23 09:11 | 顯示全部樓層
進中斷加一個IO口電平變化,出中斷時此IO口電平反轉,用示波器看一下可以大概推算出來。
回復

使用道具 舉報

ID:891041 發表于 2022-5-23 09:55 | 顯示全部樓層
找一個空閑的IO, 進出中斷的時候置高低。 拿示波器看脈寬就好了。
回復

使用道具 舉報

ID:688692 發表于 2022-5-23 10:00 | 顯示全部樓層
進中斷,啟動定時器,出中斷,停止定時器,讀取定時器的計數值,即可獲得中斷程序的執行時間。12MHz下,傳統8051的定時器分辨率為1uS。STC的定時器,時鐘可x12,分辨率約為0.1uS,如果主頻設置到24Mhz,則分辨率可達0.05uS。這個分辨率應該夠你用了。
回復

使用道具 舉報

ID:161164 發表于 2022-5-23 10:57 | 顯示全部樓層
如果你用的是Keil+89C52單片機
可以用以下方法
1 點擊目標選項 如圖
2022-05-23_104209.png


2 輸入模擬晶振頻率,為方便計時,可輸入12, 然后點擊OK
2022-05-23_104224.png


3 點擊中斷內的第一行的邊邊,加上斷點
4 在中斷內的最后一行加上一段簡單的代碼 如圖,并加上斷點
5 按F7進行編譯
2022-05-23_101904.png


6 進入Debug Mode 如圖
2022-05-23_101938.png


7 如代碼會受按鍵影響,可添加IO模擬 如圖
2022-05-23_102046.png


8 點擊左上角運行
9 代碼框會出現藍黃箭嘴,如圖,代表準備運行該行
10 左邊的states是運行步數,在11.0592Mhz晶振頻率下,一步是1.085us
11 左邊的sec是運行時間
12 計下此時的運行步數或運行時間然后點擊左上角運行
2022-05-23_102102.png


13 從運行步數得知,我這段代碼用了1740-1698 = 42 步 = 45.57us
14 從運行時間得知,我這段代碼用了0.00188802 - 0.00184245 = 0.00004557s
2022-05-23_102130.png



回復

使用道具 舉報

ID:401564 發表于 2022-5-23 14:11 | 顯示全部樓層
最好的辦法就是示波器
如果沒有,那就仿真,如果是STC的8051仿真的時間會比實際的時間長
回復

使用道具 舉報

ID:161164 發表于 2022-5-24 15:47 | 顯示全部樓層
剛找到了一個更直觀的方法(Keil V5.20) 51hei_Cap_000a.png



51hei_Cap_000b.png


51hei_Cap_000c.png


51hei_Cap_000d.png


51hei_Cap_001.png


51hei_Cap_002.png


51hei_Cap_003.png


51hei_Cap_004.png


51hei_Cap_005.png


51hei_Cap_006.png


回復

使用道具 舉報

ID:997026 發表于 2022-5-25 22:35 | 顯示全部樓層
lkc8210 發表于 2022-5-24 15:47
剛找到了一個更直觀的方法(Keil V5.20)

我的是ARM M0 MCU, 方法應該差不多,我試下,非常感謝圖文并茂的解釋,辛苦了!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表