MSP430 函数中断的各部分含义

[复制链接]
2830|5
 楼主| lujiangyuan 发表于 2014-4-3 21:38 | 显示全部楼层 |阅读模式
#pragma vector = TIMERA0_VECTOR
__interrupt void TA0_ISR(void)
{
  ;
}

这里面
vector
TIMERA0_VECTOR
的含义 ,必须这样使用吗,不可以用其他的表示吗?
还有就是TA0_ISR 这个函数名字可以修改吗?
         
dirtwillfly 发表于 2014-4-4 08:24 | 显示全部楼层
是的,每次都要这样写。
TIMERA0_VECTOR 只是针对TimerA0的中断,它是对应于TimerA0的中断向量。如果是其他外设所引发的中断,这句话写**不同,例如#pragma vector=UART0RX_VECTOR是写针对串口的中断。
TA0_ISR 这个函数名字可以自己修改
lkl0305 发表于 2014-4-4 22:19 | 显示全部楼层
#pragma vector = XXX_VECTOR可用的中断向量在头文件中可以找到
比如在msp430g2553.h中可以找到如下描述,你可以找到具体的中断向量,至于具体中断函数名,你可以自己定义:
/************************************************************
* Interrupt Vectors (offset from 0xFFE0)
************************************************************/

#define PORT1_VECTOR        (2 * 2u)  /* 0xFFE4 Port 1 */
#define PORT2_VECTOR        (3 * 2u)  /* 0xFFE6 Port 2 */
#define ADC10_VECTOR        (5 * 2u)  /* 0xFFEA ADC10 */
#define USCIAB0TX_VECTOR    (6 * 2u)  /* 0xFFEC USCI A0/B0 Transmit */
#define USCIAB0RX_VECTOR    (7 * 2u)  /* 0xFFEE USCI A0/B0 Receive */
#define TIMER0_A1_VECTOR    (8 * 2u)  /* 0xFFF0 Timer0)A CC1, TA0 */
#define TIMER0_A0_VECTOR    (9 * 2u)  /* 0xFFF2 Timer0_A CC0 */
#define WDT_VECTOR          (10 * 2u) /* 0xFFF4 Watchdog Timer */
#define COMPARATORA_VECTOR  (11 * 2u) /* 0xFFF6 Comparator A */
#define TIMER1_A1_VECTOR    (12 * 2u) /* 0xFFF8 Timer1_A CC1-4, TA1 */
#define TIMER1_A0_VECTOR    (13 * 2u) /* 0xFFFA Timer1_A CC0 */
#define NMI_VECTOR          (14 * 2u) /* 0xFFFC Non-maskable */
#define RESET_VECTOR        (15 * 2u) /* 0xFFFE Reset [Highest Priority] */
强仔00001 发表于 2014-4-4 23:48 | 显示全部楼层
学习到好的经验了
wang1jie 发表于 2015-9-24 20:20 | 显示全部楼层
学习了
zhangbo1985 发表于 2015-9-24 21:56 | 显示全部楼层
lkl0305 发表于 2014-4-4 22:19
#pragma vector = XXX_VECTOR可用的中断向量在头文件中可以找到
比如在msp430g2553.h中可以找到如下描述, ...

这几个都必须掌握的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部