中斷:cpu收到中斷請求後暫停正在執行的程式,而去執行中斷服務函式中的程式,處理結束後,繼續執行原來的程式。
能夠產生中斷請求的中斷源如下:
cc2530中斷設定步驟:使能埠組中斷(ien)——埠組中具體埠中斷使能/禁止(pxien)——設定中斷觸發方式pictl——使能系統總中斷(ea)
下文按此思路展開:
1、使能埠組中斷
ien2|=0x10; //10000,設定ien2的第4位,使能p1埠組中斷
2、使能具體埠中斷
p1ien|=0x04; //0100,p1_2口中斷
3、設定中斷觸發方式
pictl|=0x02; //p_3到p1_1下降沿觸發中斷,sw1按下,電平由高變低
4、使能總中斷
ea=1;
要想使用中斷功能,必須使能中斷總開關ea,並且使能各個中斷源的自身控制開關ien。
具體暫存器詳情如下:
中斷服務函式格式:以p1為例。函式體不能帶有引數,也不能有返回值
#pragma vector=p1int_vector__interrupt中斷向量名如下:可檢視iocc2530.h標頭檔案內容void p1_int(void) //
注意,interrupt前是兩個_
中斷標誌位:中斷源很多,需要識別觸發中斷的中斷源。
p0、p1、p2埠組的中斷標誌位分別是p0if、p1if、p2if。
p1_2連線著sw1按鍵,按鍵按下p1if值變為1,cpu就去執行p1的中斷服務函式。標誌位不能自動復位,需要手動清除該中斷標誌位。
p1if=0; //清除p1埠組中斷標誌位
具體是p1中哪乙個針腳引起的中斷,可以通過pxifg暫存器的值來判斷。當然也需要手動清除具體的針腳標誌位(在中斷服務函式中)。
p1ifg&0x04 //判斷p1_2的中斷標誌位是否為1
p1ifg &=~ 0x04; //清除p1_2的中斷標誌位
清除過程,先小再大。即先關區域性再關總閘。
#include "iocc2530.h
"#define led1 p1_0
/****************===埠初始化函式********************=
*/void
init_port()
/****************外部中斷初始化函式***************===
*/void
init_intp()
/****************=外部中斷1服務函式********************
*/#pragma vector = p1int_vector //
外部中斷1的向量入口
__interrupt
void
int1_sevice()
/*********************主函式*************************=
*/void
main()
飛控(1) 飛行力學基礎
什麼是氣動焦點?氣動焦點與飛機重心的位置關係如何影響飛機的縱向靜穩定性?氣動焦點 氣動中心 為了方便地對飛行器的重心求力矩,如果能將機 彈 翼 機 彈 身和平尾產生的公升力理解為集中作用於一點,即氣動焦點,則此點不隨迎角a變化,這樣對於空氣動力學的計算無疑是很方便的。重心在氣動焦點之前,飛行器是縱向...
HTML5 2D平台遊戲開發 1
在web領域通常會用到一組sprite來展示動畫,這類動畫從開始到結束往往不會有使用者參與,即使用者很少會用控制器 例如滑鼠 鍵盤 手柄 操作杆等輸入裝置 進行操作。但在遊戲領域,sprite動畫與控制器的操作是密不可分的。最近在寫乙個小遊戲,涉及到很多知識點,於是打算把這些內容通過一些demo總結...
金融風控學習task1
其中有四種情況 1 若乙個例項是正類,並且被 為正類,即為真正類tp true positive 2 若乙個例項是正類,但是被 為負類,即為假負類fn false negative 3 若乙個例項是負類,但是被 為正類,即為假正類fp false positive 4 若乙個例項是負類,並且被 為負...