初學MSP430 按鍵中斷控制小燈翻轉

2021-06-28 15:05:01 字數 1752 閱讀 2961

/*

** 檔名稱:main.c

* 檔案標識:no

* 硬體描述:開發板上p1.3接按鍵,p1.0接了led(用跳線帽連線)。

* 功能描述:每次按下按鍵後,控制p1.0、p1.6 led閃爍情況

** 當前版本:v1.0

* 完成日期:2023年2月6日

** 取代版本:no

* 完成日期:2013-4-8

*/#include "msp430g2553.h"

//-----在main()函式前提前申明子函式-----

void p1_iodect(); //p1口的外部中斷事件檢測函式

void p13_onclick(); 按鍵的中斷事件處理函式

void gpio_init(); //gpio初始化函式

/** 名 稱:main()

* 功 能:控制全域性

* 輸入引數:no

* 輸出引數:no

* 返回值:no

* 說 明:no

* 範 例:no

*/void main(void)}/*

* 名 稱:gpio_init()

* 功 能:設定按鍵和led控制io的方向,啟用按鍵io的上拉電阻

* 輸入引數:no

* 輸出引數:no

* 返回值:no

* 說 明:no

* 範 例:no

*/void gpio_init()

/* * 名 稱:port1_isr()

* 功 能:響應p1口的外部中斷服務

* 輸入引數:no

* 輸出引數:no

* 返回值:no

* 說 明:p1.0~p1.8共用了port1中斷,所以在port1_isr()中必須查詢標誌位p1ifg才能知道

* 具體是哪個io引發了外部中斷。p1ifg必須手動清除,否則將持續引發port1中斷。

* 範 例:no

*/#pragma vector = port1_vector

__interrupt void port1_isr(void)

/** 名 稱:p1_iodect()

* 功 能:判斷具體引發中斷的io,並呼叫相應io的中斷事件處理函式

* 輸入引數:no

* 輸出引數:no

* 返回值:no

* 說 明:該函式相容所有8個io的檢測,請根據實際輸入io啟用「檢測**」。

* 本例中,僅有p1.3被用作輸入io,所以其他7個io的「檢測**」沒有被「啟用」。

* 範 例:no

*/void p1_iodect()

}}/*

* 名 稱:p13_onclick()

* 輸入引數:no

* 輸出引數:no

* 返回值:no

* 說 明:使用事件處理函式的形式,可以增強**的移植性和可讀性

* 範 例:no

*/void p13_onclick()

//-----根據change的值,改變p1.0、p1.6這兩個埠的電平高低-----

switch(change)

}

MSP430微控制器 中斷服務

430的中斷是按照下圖1的優先順序順序定義的,有三種中斷 1.系統重置 2.不可遮蔽中斷 nmi 3.可遮蔽中斷。圖1.中斷優先順序 部分具體的中斷優先順序由高到低為 port2 vector 1 2u 0xffe2 port 2 port1 vector 4 2u 0xffe8 port 1 ti...

MSP430微控制器的中斷

中斷是msp430微處理器的一大特色,有效地利用中斷可以簡化程式和提高執行效率。msp430的幾乎每個外圍模組都能夠產生中斷,為msp430針對事件 即外圍模組產生的中斷 進行的程式設計打下基礎。msp430在沒有事件發生時進入低功耗模式,事件發生時,通過中斷喚醒cpu,事件處理完畢後,cpu再次進...

MSP430應用技巧3 中斷優先順序

msp430的中斷優先順序 開啟關閉 中斷巢狀 優先順序順序從高到低為 port2 vector 1 2u 0xffe2 port 2 port1 vector 4 2u 0xffe8 port 1 timera1 vector 5 2u 0xffea timer a cc1 2,ta timera...