微控制器中的中斷函式是不是隻能寫在主函式裡面

2021-04-21 12:19:43 字數 2614 閱讀 3126

1樓:匿名使用者

首先為這個你要bai呼叫的c檔案寫一個頭文du件zhi

,比如這個檔案叫daofun.c,那你可以寫一個回叫fun.h的標頭檔案。

這個標頭檔案的答內容是fun.c檔案裡的函式宣告。接著把fun.

c加入你的專案裡。下一步在主函式的上面用#include "fun.h"把標頭檔案包含進來。

2樓:匿名使用者

當然不是。

首先,中斷函式分兩部分:一部分是初始化部分,另一部分是中斷內觸發後執行的部容分。

其次,先說初始化部分,初始化部分要麼寫在主函式裡面,要麼寫成子函式,在主函式裡面呼叫。

第三,中斷觸發後執行的部分,這個肯定是在中斷觸發後執行的部分裡面,它屬於中斷子函式,不在主函式裡面。

通常所說的中斷函式一般指第三點,它是肯定不在主函式裡面的。

微控制器 我想問,中斷服務函式可以寫在其他c檔案中嗎?如果可以,會起作用嗎? 如果不行,只能寫mai

3樓:匿名使用者

中斷程式 就是一個 函式 放在**都可以 只要宣告好 只有 一個有且只有一個 main函式 沒有什麼main.c檔案 c檔案可以是任何名

4樓:匿名使用者

首先可以肯定,中斷bai服務函式可以寫在du其他檔案中,並不一zhi定要放在main.c中。dao

中斷服務函式專如果有特定的

屬關鍵字修飾,比如keil c51用interrupt,不僅可以放在任意檔案中,甚至可以用static 把中斷函式定義成區域性的函式都沒問題。

其他的,一般需要自己定義入口呼叫,比如某系統的定時中斷入口放在0x0008地址,則在0x0008地址放一條長跳轉指令,或者直接把函式的地址放在0x0008地址,這個根據系統不同,可能有不同的要求。

另外,有的c把載入程式會有一個預設的中斷服務地址表,使用者只需要根據系統的要求,按照一定的格式、名稱定義好中斷服務程式,系統就會自動呼叫。

微控制器 我想問,中斷服務函式可以寫在其他c檔案中嗎?

5樓:匿名使用者

首先可以肯定,中斷服務函式可以寫在其他檔案中,並不一定要放在main.c中。

中斷服務函式如果有特定的關鍵字修飾,比如keil c51用interrupt,不僅可以放在任意檔案中,甚至可以用static 把中斷函式定義成區域性的函式都沒問題。

其他的,一般需要自己定義入口呼叫,比如某系統的定時中斷入口放在0x0008地址,則在0x0008地址放一條長跳轉指令,或者直接把函式的地址放在0x0008地址,這個根據系統不同,可能有不同的要求。

另外,有的c把載入程式會有一個預設的中斷服務地址表,使用者只需要根據系統的要求,按照一定的格式、名稱定義好中斷服務程式,系統就會自動呼叫。

keil中微控制器用c語言程式設計,中斷函式在主函式後面,需要宣告嘛?可不可以直接把中斷函式放在主函式後

6樓:夢裡花落多少

對於c51微控制器,其內部總共有五級中斷源

分別為外部中斷版0、定時器0、外部中斷1、定時器1及序列中權斷。c51微控制器的中斷使用時,主要是通過中斷來決定的。

如你定義一箇中斷服務函式:

void key(void) intterrupt 0當外部中斷0申請中斷時

會自動根據interrupt後面的0,找到上面定義的這個中斷服務函式。

對於其他四個中斷源,其對應的中斷號分別為1、2 、3、4

c51微控制器的中斷操作,與直接在主函式內寫入中斷服務程式有什麼區別?

7樓:匿名使用者

二樓說的已經相當好了。我只是想在補充一些,主函式內是不能寫中斷服務程式----函式內是不能再定義函式的,中斷服務程式也是一個函式。還有計算機中,設定中斷就是為了達到實時響應,如果你只在中斷程式中設定一個標號,然後把中斷的操作寫在其他函式中就不能快速的響應中斷,而失去了中斷的意義了。

如你把定時器設為1ms中斷一次,在中斷服務程式用一個標號來表示有中斷產生,然後在其他函式中執行中斷的操作,又假如其他函式執行的時間需要10ms那麼也就11ms才執行一次中斷,從而失去了中斷的意義了。2:因為p0口是漏極開路的。

與你所想的也許有很大的區別。呵呵!希望可以幫到你!

8樓:匿名使用者

當你的主程式很長的時候,把中斷的操作寫

在主程式中不能快速的響應。例如一個外部中斷在主程式的開頭被觸發,而你的中斷操作放在主程式的結尾。而你的整個主程式的執行時間是10ms,那麼你這個中斷操作就延遲了10ms。

如果放在中斷服務程式中,不論何時發生中斷,cpu將會跳到中斷服務程式中去處理中斷操作。這是微控制器的一種並行操作方式。第二個問題:

因為p0口是漏極開路的。你去看看p0口的內部結構圖,再用一點點的電路知識就能分析出來。

9樓:匿名使用者

首先為這個你要呼叫的c檔案寫一個標頭檔案,比如這個檔案叫fun.c,那你可以寫一個叫fun.h的標頭檔案。

這個標頭檔案的內容是fun.c檔案裡的函式宣告。接著把fun.

c加入你的專案裡。下一步在主函式的上面用#include "fun.h"把標頭檔案包含進來。

10樓:匿名使用者

就像電腦關機與待機的區別

微控制器中斷返回指令,微控制器組合語言指令中中斷返回指令RET和RETI有什麼不同?

程式結構錯誤。mov th0,65536 50000 256 定時50毫秒 mov tl0,65536 50000 256mov ie,82h setb tr0 主程式,到這,就沒有了,這那行?timer 下面就是 定時器中斷服務程式mov th0,65536 50000 256 初脈衝50ms m...

微控制器中查詢和中斷的本質區別,微控制器中查詢和中斷的本質區別?

說一下個人的理解,什麼時候用中斷,一般的微控制器中斷響應時間也就是一個或兩個機器週期這樣,所以如果我們要處理的東西要求時間很嚴格,那就要在中斷服務程式裡來出來,比如常用的傳送或接收非同步通訊資料,傳送接收遙控訊號,等等.這個時候就要用中斷來做.什麼時候用查詢 一般一些處理事件要求時間不是很嚴格的情況...

51微控制器中斷服務函式與其他函式的區別

中斷函式,屬於後臺觸發,前臺執行的函式體 其他函式,都屬於前臺呼叫執行的函式體。51微控制器中斷服務函式與其他函式的差異性 1,中斷函式與普通函式相比要注意在入口遮蔽一些中斷,在出口恢復,防止中斷函式在處理重要工作中,又被中斷重入,導致處理異常。2,中斷函式還要注意在入口儲存重要的暫存器狀態,特別是...