msp430f149內部有三種型別中斷:系統復位中斷,不可遮蔽中斷,可遮蔽中斷
中斷過程
①完成當前正在執行的指令﹔
②把pc暫存器內容入棧;
③把sr暫存器內容入棧;
④如果同時有多個中斷,則選擇優先順序最高的中斷;
⑤如果中斷是單源中斷,則中斷標誌位自動復位;如果中斷是多源中斷,則需要中斷服務程式復位;
⑥sr清零,結束低功耗模式。由於gie被清除,其他的中斷被遮蔽。因此,中斷不能被巢狀;
7.中斷向量被裝入pc暫存器,並從該位址開始執行中斷服務程式。
中斷向量表
外部管腳nmi的觸發(也就是所說的復位模式)
標誌位:ofifg
flash非法訪問
標誌位:accvifg
振盪器不穩定
標誌位:nmiifg
狀態暫存器sr中的下標為3的gie位為總中斷允許控制位,這是區分是否遮蔽的主要依據
特點多元中斷:2組8個中斷(必須軟體清零標誌位)
只有邊緣跳變中斷
引腳配置
(以引腳p2.1為例)
p2dir |
= bit1;
//配置p2.1方向為輸入模式
p2ie |
= bit1;
//配置p2.1的中斷使能
p2ies |
= bit1;
//配置p2.1為下降沿中斷響應
其他暫存器可配置,可不配置。引腳功能選擇為一般引腳,不是功能引腳。
中斷函式配置
(以引腳p2.1為例)
#pragma vector =port2_vector
__interrupt void
tangle_make
(void
)
timer_a,timer_b,處於定時模式的看門狗
暫存器配置
//定時模式示例
cctl0 = ccie;
// 捕獲/比較中斷使能
ccr0 =
6000
;// 比較值為8000,即從0計數到8000產生一次中斷
tactl = tassel_2 + mc_1+taclr;
// 使用smclk時鐘,使用增計數模式,清零taccr暫存器
//捕獲模式示例
tactl = taclr + tassel_2 + id_3 + mc_3;
//清零taccr暫存器,使用smclk時鐘,8分頻,使用增減計數模式
tacctl0 = cm_2+ ccis_0 + scs + cap + ccie;
//設定為 下降沿捕獲,捕獲通道0,同步捕獲,捕捉模式,捕獲/比較中斷使能
tacctl1 = cm_3 + ccis_1 + scs + cap + ccie;
//設定為 上公升下降沿捕獲,捕獲通道1,同步捕獲,捕捉模式,捕獲/比較中斷使能
//pwm輸出模式示例
tactl |
= tassel_2 + id_3 + mc_2 + taclr + taie;
//使用smclk時鐘,8分頻,使用連續計數模式,清零taccr暫存器,定時器溢位中斷
tacctl0= ccie;
ccr0 =
5000
;
中斷函式配置#pragma vector=timera0_vector
__interrupt void timer_a (
void
)//定時器a中斷服務程式
}
#include
unsigned
char seg_code=
;// seg 數字0—9 共陽
unsigned
char seg_wei=
;// 位選
unsigned
char flag =0;
void
port_init()
void
clock_init()
while
((ifg1 & ofifg)!=0
);// 判斷xt2是否起振
bcsctl2 |
= sels+selm_2;
// smclk = mclk = xt2
}void
wr_595
(unsigned
char data)
//要寫入的資料
p5out|
=0x01
;//stcp=1;
p5out&
=0xfe
;// stcp=0;
}void
main
(void
)case2:
case3:
case4:
case5:
case6:
case7:
case8:
}
flag =0;
p5out&
=0xfe
; p5out|
=0x01
;while
(flag ==0)
;}}#pragma vector=port1_vector
__interrupt void port_1 (
void
)//外部中斷p1中斷服務程式
p1ifg =
0x00
;}
msp430f149外中斷問題
msp430的外中斷歸根到底 其實只需要兩個部分的配置就可以了 1.引腳配置 2.中斷函式配置 一 引腳配置 以引腳p2.1為例 p2dir 0x01 配置為輸入 p2ie 0x01 p2ies 0x01 其他暫存器可配置,可不配置。注意引腳功能選擇為一般引腳,不是功能引腳。雖然引腳的配置很簡單,但...
msp430f149的低功耗模式
430的低功耗確實很強啊,雖然和vr微控制器比起來速度慢了好多。在cpu進行工作時,如果沒有什麼事情幹,就得進入低功耗模式啦,lmpx 0 4 這幾種模式的具體事項就是如下的,得記住了。一,執行模式 msp430具有一種活動模式和五種軟體可選的低功耗執行模式。乙個中斷事件可以將晶元從五種低功耗模式中...
MSP430F149按鍵中斷暫存器配置
p20 p23為led,p11為按鍵。按下為低電平。使用中斷函式按下一次按鍵則led狀態反轉一次。include io430.h include in430.h void select xt2 void while ifg1 ofifg bcsctl2 selm 2 sels mclk和smclk選...