MSP430中断服务函数的定义

来源:本站
导读:目前正在解读《MSP430中断服务函数的定义》的相关信息,《MSP430中断服务函数的定义》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《MSP430中断服务函数的定义》的详细说明。
简介: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 <msp430x14x.h>

{

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捕获/比较数据寄存器数据

}

//程序结束

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

提醒:《MSP430中断服务函数的定义》最后刷新时间 2024-03-14 01:13:45,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《MSP430中断服务函数的定义》该内容的真实性请自行鉴别。