MSP430F149 中斷及案例

2021-10-09 23:32:48 字數 2912 閱讀 8828

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選...