為什麼中斷子程式中不能使用延時和過長的程式?

2021-09-24 23:41:54 字數 644 閱讀 5931

a回答:

通常在中斷子程式中是不呼叫延時子程式的,這樣會增加中斷處理時間,如果有其它低階中斷了,就會延誤響應中斷了。

所以,中斷子程式中不要寫呼叫延時子程式,中斷子程式也不要寫得過長,處理過多的任務,要盡快處理後及時返回,如果中斷一次有很多任務需要執行完全,可以在中斷子程式中設定乙個標誌位,在主程式中查這個標誌位,當標誌為1時,就在主程式中完成這些任務,這樣就不會影響其它中斷源的中斷,也不會使中斷產生混亂。

首先,對於cpu頻率的理解,1mhz的頻率cpu週期就是1us(1 / 1000000秒)

b回答:

1、既然1mhz對應1us(也就是1us對應乙個指令週期,不考慮流水線的單指令週期),這樣,乙個指令週期就對應一條指令。

2、假設每條指令都有2個位元組大小(16位指令),這樣,1ms時間內1mhz的cpu可以大約執行2kb的**。因此如果中斷處理函式的**越接近2kb,則越容易對中斷。

3、假設乙個10khz外設,中斷處理程式允許的最大安全尺寸是多少?

易cortex m3為例,支援16/32位指令操作(大部分為單週期指令),假設主頻為72mhz,100khz相當於100us 。

則如果是16位指令(前面算過1ms 2kb**),72 * 100 * 2到72 * 100 * 4之間(14.4~28.8),去最小14.4kb。

asp錯誤 呼叫子程式時不能使用括號

今天在處理電子電器交易網 www.hifi168.net 的安全問題。檔案上傳漏洞是asp 之痛。在處理這個問題時,動用了雙層機制 1 使用者許可權檢查。由於後台許可權是靠session來控制了,這個很容易辦到。2 頁面檢測。檔案是從 提交上來的?能不能在本地建立乙個站點,把頁面post到遠端的站點...

陣列指標為什麼不能使用strcpy

程式設計中遇到的問題,終於弄明白了 例程說明如下 include include int main char argv,char argc 編譯時不會出錯,但是執行時會出錯,你定義char b 10 時b 10 的每個元素是乙個指標,指向字元型的,但是指向的位址是隨機的,是不確定的,所以strcpy...

Unity3D開發中熱更新為什麼不能使用C 的思考

閱讀了網上一些文章,其實使用c 進行熱更新是可以的,將需要更新的 打包成程式集,然後利用反射即可,但是也提到在ios平台是不行的,至於為什麼不行,就不再說了,然後就是推薦lua作為熱更新方案,但是,為啥lua就行?c 就不行?好多人都說lua能熱更新,是因為它是解釋型語言,不用編譯,在執行時能動態解...