MSP430中断服务函数的定义

源代码在线查看: msp430中断服务函数的定义.txt

软件大小: 2 K
上传用户: hh831
关键词: MSP 430 中断服务 函数
下载地址: 免注册下载 普通下载 VIP

相关代码

				MSP430中断服务函数的定义
				
				//为了保证代码可以在IAR编译器的任何版本中都能正确得到编译,所以作以下的条件编译。
				
				#ifdef __IAR_SYSTEMS_ICC__              //如果编译器是IAR, 那么以下将被编译。 
				
				#if __VER__ >= 200
				
				#pragma vector=USART0RX_VECTOR          //在IAR2.0以上中断函数声明。
				
				__interrupt void SPI0_rx (void) 
				
				#else                                   //在IAR2.0以下中断函数声明。
				
				interrupt[USART0RX_VECTOR] void SPI0_rx (void)
				
				#endif                                  //IAR中断函数声明结束。
				
				{ }
				
				
				--------------------------------------------------------------------------------
				
				在上述中
				
				USART0RX_VECTOR 是定义中断地址宏,其实就是一个中断矢量值,例如,地址, 0xffe0 。
				
				                这个中断矢量有芯片型号决定,一旦信号确定,那么所有的终端矢量也就确定了。 
				
				SPI0_rx 是中断函数名称,使用者可以根据自己的喜好来编写这个函数名。
				
				 实际例程
				
				//**************************************************************************
				//例程描述:利用定时器定时功能,实现P1.0方波输出。
				
				#include 
				
				{
				  WDTCTL = WDTPW + WDTHOLD;          //停止看门狗WDT,不使用内部看门狗定时器。
				  P1DIR |= 0x01;                     //设置P1.0口方向为输出。
				  CCTL0 = CCIE;                      //设置捕获/比较控制寄存器中CCIE位为1,CCR0捕获/比较功能中断为允许。
				  CCR0 = 50000;                      //捕获/比较控制寄存器CCR0初值为5000。
				  TACTL = TASSEL_2 + MC_2;           //设置定时器A控制寄存器TACTL,使时钟源选择为SMCLK辅助时钟。
				  _BIS_SR(LPM0_bits + GIE);          //进入低功耗模式LPM0和开中断
				} 
				//定时器A 中断服务程序区
				//当IAR编译器版本大于或等于2.0以上时,则中断写法格式如下。
				#pragma vector=TIMERA0_VECTOR        //定时器A0中断向量
				__interrupt void Timer_A (void)      //中断函数
				 {
				   P1OUT ^= 0x01;                    //P1.0取反输出
				   CCR0 += 50000;                    //重新载入CCR0捕获/比较数据寄存器数据
				 }
				
				//程序结束
				//************************************************************************** 
				
				
							

相关资源