1樓:匿名使用者
是指中斷處理函式不能有輸入引數也不能有函式返回。因為中斷都是些硬體自動呼叫,沒有程式去給他傳遞引數,也沒有硬體去接收引數。
不過x86計算機的軟中斷可以有引數傳遞,不過他是用暫存器傳遞的。
2樓:
1、51微控制器c51語言中斷函式本身不帶引數傳遞,但你可以使用全域性變數進行引數傳遞。
2、所謂中斷函式不能進行引數傳遞,是指呼叫函式時能否帶引數,c51是不能的,但完全可以使用全域性變數的方式實現帶引數的功能。
3樓:匿名使用者
就是說不能像呼叫普通函式那樣直接傳遞引數
可以用全域性變數傳遞引數
4樓:匿名使用者
有可能是記憶體不夠用了。
為什麼嵌入式系統的c語言的中斷函式不能有引數和返回值
5樓:
這個和c語言沒有關係,中斷處理沒有引數和返回值是由中斷的原理決定的。
6樓:谷歌三下也知道
c語言都一樣的,應該是你寫的程式有問題吧,建議可以把程式發上來看看
7樓:匿名使用者
應該可以有的吧,這要看你定義函式的時候是怎麼定義的,通常中斷函式定義的時候都是void void型別的,因此在呼叫中斷函式的時候就不需要引數和返回值。
c語言編寫中斷服務程式不允許使用「形式引數「傳遞中斷程式中使用的變數。其原因是
8樓:愚夫噬血
中斷規則就是無引數。如你問規則,那就得問制定的人了。
51系列微控制器c語言中的中斷的問題。
9樓:匿名使用者
1.void(中斷函式返回類bai型(空du型)) time1 (中
斷zhi函式名)dao(void(引數型別) interrupt 3 (中斷號)專
2: 中斷條件發生時執行中斷,屬比如void time1(void) interrupt 3 是定時器1定時時間到發生中斷,中斷函式放在那裡無所謂
3:void pxint0(void) interrupt 0 中斷名為pxint0的0號中斷
void pxint1(void) interrupt 2 中斷名為pxint1的2號中斷
void time0_int(void) interrupt 1 中斷名為time0_int的1號中斷
void time1_int(void) interrupt 3 中斷名為time1_int的3號中斷
4:中斷的**是你想中斷執行的工作,中斷的**是根據任務,需要你自己寫的
10樓:匿名使用者
中斷系統中有兩個"使用者不能使用的"優先順序狀態觸發器;
其中乙個,置1時,表示正在執行高優先順序的版中斷,遮蔽所權有中斷請求;
還有乙個,置1時,表示正在執行低優先順序的中斷,遮蔽同級中斷請求.
明白了吧?其實就是說這兩個觸發器,是使用者無法訪問到的,是內建且自動賦值的.一旦有高優先順序的中斷執行了,第乙個就自動置1;或者一旦有低優先順序的中斷執行,第二個就自動置1.
開發者不需要考慮它們的存在和影響.
有沒有中斷的例子,可以解釋一下中斷莫
11樓:小賈飛劍
中斷:指當出抄現需要時,cpu暫時停止襲當前程式bai的執行轉而執行處理新du情況的程式和執行過程zhi。即dao在程式執行過程中,系統出現了乙個必須由cpu立即處理的情況,此時,cpu暫時中止程式的執行轉而處理這個新的情況的過程就叫做中斷。
例子:比如說叫個外賣,一般人不會再那邊一直等著外賣,當收到外賣到了訊息(可以認為中斷請求來了,出現了乙個必須由cpu立即處理的情況),把手上的事情處理完了(cpu暫時中止程式的執行),比如說讓其他人幫你暫時玩一下當前的moba遊戲,再去取外賣(執行轉而處理這個新的情況)。外賣取完可以邊吃飯邊打遊戲(中斷完畢回到原來的程式,再開乙個輔助線程吃飯)
c語言為什麼微控制器中斷中不能用跳轉
12樓:匿名使用者
在中斷子函式中是不能用跳轉語句跳轉回主程式的,而是中斷子函式執行完了,自己返回到斷點的,只有自己返回到斷點處,才能恢復中斷狀態,幷包括恢復堆疊,否則就會出現中斷混亂,而用多次中斷後堆疊溢位了。
13樓:浪子漂浮
通俗點bai講吧, 中斷就是乙個
du 插隊者, 也就是zhi 你插隊也就dao行了, 你現在 還搞得 拉一幫小弟專
進來插隊,屬 你說 你這樣 說得過去麼, 那後面的隊伍不輕則**重者反抗, 這樣不就亂套了。
你要理解為什麼要有中斷, 中斷就是突發時間必須要立馬處理掉盡量不影響後面的程式,你要跳轉出去一來會耽誤時間二來 跳轉出去 也就會引發堆疊溢位了, 所以 要盡量不用跳轉出去,中斷處理的事情越簡單越快 就好
微控制器c語言中斷函式的定義形式是怎樣的?
14樓:大野瘦子
形式如下:
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)表示。其作用和計算機的硬碟差不多,用來存放使用者編寫的程式。
特點是:掉電後不會丟失資料(程式)。
15樓:
舉例復:
串列埠中斷制函bai數
void int_uart(void) interrupt 4 //using x (注:using x 是可選的
du)if(ti==1)
}注意,中
斷函式不能zhi
有引數和返dao回值
16樓:匿名使用者
對bai51而言,形式如下:du
void 中斷
名(void) inerrupt 中斷號 using 工作寄存zhi器組
比如外部中dao斷0
void ext0(void) interrupt 0 using 1 //後面的回using 1可以省略,預設為答0
定時器1
void t1isr() interrupt 3等等
17樓:匿名使用者
對於c51單片
bai機,其內部總共有五級中斷源du
分別為外zhi部中斷0、定
時器dao0、外部中斷1、定時器1及序列版中斷。
c51微控制器的權中斷使用時,主要是通過中斷服務號來決定的。
如你定義乙個中斷服務函式:
void key(void) intterrupt 0當外部中斷0申請中斷時
會自動根據interrupt後面的0,找到上面定義的這個中斷服務函式。
對於其他四個中斷源,其對應的中斷號分別為1、2 、3、4
18樓:清風迎明月
函式名() interrupt 0 (1,2,3,4) using 工作組
51微控制器 c語言 如何實現中斷呼叫 10
19樓:刁刁哥
你這個不是中斷呼叫,只是一種模式選擇。也就是按鍵1按下之後按照一種方式掃瞄顯示燈回,按鍵2按下之後答按照另一種方式顯示燈·············。很簡單的。
我習慣用switch case 結構,想想就解決了。
20樓:匿名使用者
在你程式裡設定個檢測條件,檢測到按鍵後就無條件跳轉就ok了
21樓:昍朤
#include
sbit d1=p2^0;
sbit p1=p2^1;
void main()
void main()
void main()
void zd0() interrupt 0void zd1() interrupt 1用的是外部中斷0和1,程式很簡單,注釋就不內寫了。如果有錯誤的話,還容請指正。
51微控制器c語言定義函式出錯,望各位大神指教!
22樓:煙火夜空
①、函式沒有自
申明就使用了bai。
②、函式呼叫,du不能省略括號。
zhi③、for迴圈的(表示式
dao1;表示式2;表示式3)表示式4; 中表示式2 為 表示式4是否執行的判讀依據,應該使用 邏輯判斷運算子(==),不該使用 賦值符(=)。
微控制器c語言中斷中的return返回
嗯,可以這麼理解,發生中斷時,主函式停止執行,調至中斷 執行了。因為中斷時可以巢狀的,也有可能返回到之前被中斷的中斷程式那執行了。總之就是返回之前中斷出的 繼續執行。 牛xx的小 如果這個條件滿足則直接返回,否則執行下面的語句! 如果滿足條件則返回值,否則執行下面語句。 return返回一個值。後面...
51微控制器中斷問題
cpu響應中斷後,由硬體自動清零 但是但是但是但是但是但是但是但是 你的程式沒使用中斷 你只是使用了定時器 唯武德馨一般幾 tf0和tf1可以不清0,硬體會自動清0 但是在一些增強型的51系統裡 如at89s52 tf2則必需由軟體清0 那是中斷請求 中斷沒開清什麼零 要是清了還怎麼查詢啊. 這位仁...
51微控制器c語言定義函式出錯望各位大神指教
1 函式沒有自 申明就使用了bai。2 函式呼叫,du不能省略括號。zhi3 for迴圈的 表示式 dao1 表示式2 表示式3 表示式4 中表示式2 為 表示式4是否執行的判讀依據,應該使用 邏輯判斷運算子 不該使用 賦值符 51微控制器 c語言裡 nop 函式怎麼用 具體一點 求高手指教 1 c...