MSP430中斷c函數(shù)模板大全
多中斷中斷源:P1IFG.0~P1IFG7
本文引用地址:http://www.ex-cimer.com/article/201611/321289.htm進(jìn)入中斷后應(yīng)首先判斷中斷源,退出中斷前應(yīng)清除中斷標(biāo)志,否則將再次引發(fā)中斷
******************************************************************************/
#pragma vector=PORT1_VECTOR
__interrupt void Port1()
{
//以下為參考處理程序,不使用的端口應(yīng)當(dāng)刪除其對(duì)于中斷源的判斷。
if((P1IFG&BIT0) == BIT0)
{
//處理P1IN.0中斷
P1IFG &= ~BIT0; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else if((P1IFG&BIT1) ==BIT1)
{
//處理P1IN.1中斷
P1IFG &= ~BIT1; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else if((P1IFG&BIT2) ==BIT2)
{
//處理P1IN.2中斷
P1IFG &= ~BIT2; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else if((P1IFG&BIT3) ==BIT3)
{
//處理P1IN.3中斷
P1IFG &= ~BIT3; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else if((P1IFG&BIT4) ==BIT4)
{
//處理P1IN.4中斷
P1IFG &= ~BIT4; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else if((P1IFG&BIT5) ==BIT5)
{
//處理P1IN.5中斷
P1IFG &= ~BIT5; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else if((P1IFG&BIT6) ==BIT6)
{
//處理P1IN.6中斷
P1IFG &= ~BIT6; //清除中斷標(biāo)志
//以下填充用戶代碼
}
else
{
//處理P1IN.7中斷
P1IFG &= ~BIT7; //清除中斷標(biāo)志
//以下填充用戶代碼
}
LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽
}
#pragma vector=TIMERA1_VECTOR
__interrupt void TimerA1()
{
//以下為參考處理程序,不使用的中斷源應(yīng)當(dāng)刪除
switch (__even_in_range(TAIV, 10))
{
case 2:
//捕獲/比較1中斷
//以下填充用戶代碼
break;
case 4:
//捕獲/比較2中斷
//以下填充用戶代碼
break;
case 10:
//TAIFG定時(shí)器溢出中斷
//以下填充用戶代碼
break;
}
LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽
}
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA0()
{
//以下填充用戶代碼
LPM3_EXIT; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽
}
#pragma vector=ADC_VECTOR
__interrupt void Adc()
{
//以下為參考處理程序,不使用的中斷源應(yīng)當(dāng)刪除
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; //退出中斷后退出低功耗模式。若退出中斷后要保留低功耗模式,將本句屏蔽
}
評(píng)論