為什麼嵌入式系統的c語言的中斷函式不能有引數和返回值

2021-05-22 20:41:42 字數 2635 閱讀 7081

1樓:

這個和c語言沒有關係,中斷處理沒有引數和返回值是由中斷的原理決定的。

2樓:谷歌三下也知道

c語言都一樣的,應該是你寫的程式有問題吧,建議可以把程式發上來看看

3樓:匿名使用者

應該可以有的吧,這要看你定義函式的時候是怎麼定義的,通常中斷函式定義的時候都是void void型別的,因此在呼叫中斷函式的時候就不需要引數和返回值。

微控制器c語言中斷函式的定義形式是怎樣的?

4樓:大野瘦子

形式如下:

void 中斷copy

名(void) inerrupt 中斷號 using 工作暫存器組

比如外部中斷0

void ext0(void) interrupt 0 using 1 //後面的using 1可以省略,預設為0

定時器1

void t1isr() interrupt 3

微控制器內部結構

1、cpu

它的名字沒有改,還是稱為cpu(central processing unit)。它是微控制器的核心部件,包括運算器和控制器。

運算器既是算術邏輯單元alu(arithmetic logic unit),其功能是進行算術運算和邏輯運算。

控制器一般由指令暫存器、指令譯碼器、時序電路和控制電路組成。其作用是完成取指令、將指令譯碼形成各種微操作並執行指令,同時控制計算機的各個部件有條不紊地工作。

2、微控制器內部結構之一rom

「硬碟」,改了名字,稱為程式儲存器,也叫只讀儲存器。用rom(read only memery)表示。其作用和計算機的硬碟差不多,用來存放使用者編寫的程式。

特點是:掉電後不會丟失資料(程式)。

5樓:

舉例復:

串列埠中斷制函bai數

void int_uart(void)  interrupt 4 //using x  (注:using x 是可選的

du)if(ti==1)

}注意,中

斷函式不能zhi

有引數和返dao回值

6樓:匿名使用者

對bai51而言,形式如下:du

void 中斷

名(void) inerrupt 中斷號 using 工作寄存zhi器組

比如外部中dao斷0

void ext0(void) interrupt 0 using 1 //後面的回using 1可以省略,預設為答0

定時器1

void t1isr() interrupt 3等等

7樓:匿名使用者

對於c51單片

bai機,其內部總共有五級中斷源du

分別為外zhi部中斷0、定

時器dao0、外部中斷1、定時器1及序列版中斷。

c51微控制器的權中斷使用時,主要是通過中斷服務號來決定的。

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

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

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

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

8樓:清風迎明月

函式名() interrupt 0 (1,2,3,4) using 工作組

51微控制器c語言中斷函式不能進行引數傳遞,是什麼意思,誰能解釋一下

9樓:匿名使用者

是指中斷處理函式不能有輸入引數也不能有函式返回。因為中斷都是些硬體自動呼叫,沒有程式去給他傳遞引數,也沒有硬體去接收引數。

不過x86計算機的軟中斷可以有引數傳遞,不過他是用暫存器傳遞的。

10樓:

1、51微控制器c51語言中斷函式本身不帶引數傳遞,但你可以使用全域性變數進行引數傳遞。

2、所謂中斷函式不能進行引數傳遞,是指呼叫函式時能否帶引數,c51是不能的,但完全可以使用全域性變數的方式實現帶引數的功能。

11樓:匿名使用者

就是說不能像呼叫普通函式那樣直接傳遞引數

可以用全域性變數傳遞引數

12樓:匿名使用者

有可能是記憶體不夠用了。

c語言為什麼微控制器中斷中不能用跳轉

13樓:匿名使用者

在中斷子函式中是不能用跳轉語句跳轉回主程式的,而是中斷子函式執行完了,自己返回到斷點的,只有自己返回到斷點處,才能恢復中斷狀態,幷包括恢復堆疊,否則就會出現中斷混亂,而用多次中斷後堆疊溢位了。

14樓:浪子漂浮

通俗點bai講吧, 中斷就是一個

du 插隊者, 也就是zhi 你插隊也就dao行了, 你現在 還搞得 拉一幫小弟專

進來插隊,屬 你說 你這樣 說得過去麼, 那後面的隊伍不輕則**重者反抗, 這樣不就亂套了。

你要理解為什麼要有中斷, 中斷就是突發時間必須要立馬處理掉儘量不影響後面的程式,你要跳轉出去一來會耽誤時間二來 跳轉出去 也就會引發堆疊溢位了, 所以 要儘量不用跳轉出去,中斷處理的事情越簡單越快 就好

嵌入式c語言的定義問題,謝謝,嵌入式C語言的定義問題,謝謝!

字元型在機器裡面也是以二進位制儲存的。所以 i 0 不一定就是數學意義上的零。typedef 是預定義的關鍵字,意思定義一個 int8u 來代替 unsigned char,只是為了寫程式和讀程式的方便,沒有其他意義。char 和int本身就沒有什麼區別,只是長度不用而已。在內部都是以二進位制儲存。...

簡述嵌入式系統的概念及特點,什麼是嵌入式系統?嵌入式系統的特點是什麼

嵌入式系統的概念 嵌入式系統裝置一般都由嵌入式計算機系統和執行裝置組成,嵌入式計算機系統是整個嵌入式系統的核心,由硬體層 中間層 系統軟體層和應用軟體層組成。執行裝置也稱為被控物件,它可以接受嵌入式計算機系統發出的控制命令,執行所規定的操作或任務。嵌入式系統的特點 系統核心小 專用性強 系統精簡 高...

嵌入式c語言資料型別和標準c語言的資料型別是一樣的嗎,如果不一樣請舉例說明下謝謝

嵌入式c語言資料型別和標準c語言的資料型別是一樣的,都是ansic。但是使用方式有區別 嵌入式c語言資料 型別非常嚴格,對有符號無符號限定很嚴格,例如對資料很大時使用unsigned int等。這個的話要看你具體的環境了,一般都會有說明手冊的。不同的資料型別最終體現在每次分配的儲存空間不同。其實你如...