新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430中斷c函數(shù)模板大全

MSP430中斷c函數(shù)模板大全

作者: 時間:2016-11-25 來源:網(wǎng)絡 收藏
端口1中斷函數(shù)

多中斷中斷源:P1IFG.0~P1IFG7

本文引用地址:http://butianyuan.cn/article/201611/321289.htm

進入中斷后應首先判斷中斷源,退出中斷前應清除中斷標志,否則將再次引發(fā)中斷

******************************************************************************/

#pragma vector=PORT1_VECTOR

__interrupt void Port1()

{

//以下為參考處理程序,不使用的端口應當刪除其對于中斷源的判斷。

if((P1IFG&BIT0) == BIT0)

{

//處理P1IN.0中斷

P1IFG &= ~BIT0; //清除中斷標志

//以下填充用戶代碼

}

else if((P1IFG&BIT1) ==BIT1)

{

//處理P1IN.1中斷

P1IFG &= ~BIT1; //清除中斷標志

//以下填充用戶代碼

}

else if((P1IFG&BIT2) ==BIT2)

{

//處理P1IN.2中斷

P1IFG &= ~BIT2; //清除中斷標志

//以下填充用戶代碼

}

else if((P1IFG&BIT3) ==BIT3)

{

//處理P1IN.3中斷

P1IFG &= ~BIT3; //清除中斷標志

//以下填充用戶代碼

}

else if((P1IFG&BIT4) ==BIT4)

{

//處理P1IN.4中斷

P1IFG &= ~BIT4; //清除中斷標志

//以下填充用戶代碼

}

else if((P1IFG&BIT5) ==BIT5)

{

//處理P1IN.5中斷

P1IFG &= ~BIT5; //清除中斷標志

//以下填充用戶代碼

}

else if((P1IFG&BIT6) ==BIT6)

{

//處理P1IN.6中斷

P1IFG &= ~BIT6; //清除中斷標志

//以下填充用戶代碼

}

else

{

//處理P1IN.7中斷

P1IFG &= ~BIT7; //清除中斷標志

//以下填充用戶代碼

}

LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

}

#pragma vector=TIMERA1_VECTOR

__interrupt void TimerA1()

{

//以下為參考處理程序,不使用的中斷源應當刪除

switch (__even_in_range(TAIV, 10))

{

case 2:

//捕獲/比較1中斷

//以下填充用戶代碼

break;

case 4:

//捕獲/比較2中斷

//以下填充用戶代碼

break;

case 10:

//TAIFG定時器溢出中斷

//以下填充用戶代碼

break;

}

LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

}

#pragma vector=TIMERA0_VECTOR

__interrupt void TimerA0()

{

//以下填充用戶代碼

LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

}

#pragma vector=ADC_VECTOR

__interrupt void Adc()

{

//以下為參考處理程序,不使用的中斷源應當刪除

if((ADC12IFG&BIT0)==BIT0)

{

//通道0

//以下填充用戶代碼

}

else if((ADC12IFG&BIT1)==BIT1)

{

//通道1

//以下填充用戶代碼

}

else if((ADC12IFG&BIT2)==BIT2)

{

//通道2

//以下填充用戶代碼

}

else if((ADC12IFG&BIT3)==BIT3)

{

//通道3

//以下填充用戶代碼

}

else if((ADC12IFG&BIT4)==BIT4)

{

//通道4

//以下填充用戶代碼

}

else if((ADC12IFG&BIT5)==BIT5)

{

//通道5

//以下填充用戶代碼

}

else if((ADC12IFG&BIT6)==BIT6)

{

//通道6

//以下填充用戶代碼

}

else if((ADC12IFG&BIT7)==BIT7)

{

//通道7

//以下填充用戶代碼

}

else if((ADC12IFG&BIT8)==BIT8)

{

//VeREF+

//以下填充用戶代碼

}

else if((ADC12IFG&BIT9)==BIT9)

{

//VREF-/VeREF-

//以下填充用戶代碼

}

else if((ADC12IFG&BITA)==BITA)

{

//溫度

//以下填充用戶代碼

}

else if((ADC12IFG&BITB)==BITB)

{

//(AVcc-AVss)/2

//以下填充用戶代碼

}

LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽

}


上一頁 1 2 下一頁

評論


技術專區(qū)

關閉