准备电赛——CCSMSP430F5529标准库——中断的写法

#pragma vector=PORT1_VECTOR			//P1口中断向量
__interrupt void Port_1 (void)		//声明中断服务程序,名为Port_1
{
	……
}

         在中断服务程序前加__interrupt关键字(注意前面有两个短下划线),告诉编译器这个函数为中断服务程序,编译器会自动查询中断向量表、保护现场、压栈出栈等,然后,在中断服务程序的前一行写"#pragma vector=PORT1_VECTOR"指明中断源,决定该函数是为哪个中断服务的。因此,编程者只需集中精力编写中断服务程序即可,当中断请求发生且被允许时,程序会自动执行中断服务程序。
        MSP430单片机的中断源数量很多,比如P1,P2口每个IO口都能产生中断,16个ADC采样通道采样结束及遇到的错误也能产生中断。为了便于管理,MSP430单片机的中断管理机制把同类的中断合并成一个总中断源,具体的中断需要由软件查询中断标志位进行确定。

msp430f5529.h中所列的中断向量宏定义

#define RTC_VECTOR              (41 * 1u)                    /* 0xFFD2 RTC */
#define PORT2_VECTOR            (42 * 1u)                    /* 0xFFD4 Port 2 */
#define TIMER2_A1_VECTOR        (43 * 1u)                    /* 0xFFD6 Timer2_A5 CC1-4, TA */
#define TIMER2_A0_VECTOR        (44 * 1u)                    /* 0xFFD8 Timer2_A5 CC0 */
#define USCI_B1_VECTOR          (45 * 1u)                    /* 0xFFDA USCI B1 Receive/Transmit*/
#define USCI_A1_VECTOR          (46 * 1u)                    /* 0xFFDC USCI A1 Receive/Transmit*/
#define PORT1_VECTOR            (47 * 1u)                    /* 0xFFDE Port 1 */
#define TIMER1_A1_VECTOR        (48 * 1u)                    /* 0xFFE0 Timer1_A3 CC1-2, TA1 */
#define TIMER1_A0_VECTOR        (49 * 1u)                    /* 0xFFE2 Timer1_A3 CC0 */
#define DMA_VECTOR              (50 * 1u)                    /* 0xFFE4 DMA */
#define USB_UBM_VECTOR          (51 * 1u)                    /* 0xFFE6 USB Timer / cable event / USB reset */
#define TIMER0_A1_VECTOR        (52 * 1u)                    /* 0xFFE8 Timer0_A5 CC1-4, TA */
#define TIMER0_A0_VECTOR        (53 * 1u)                    /* 0xFFEA Timer0_A5 CC0 */
#define ADC12_VECTOR            (54 * 1u)                    /* 0xFFEC ADC */
#define USCI_B0_VECTOR          (55 * 1u)                    /* 0xFFEE USCI B0 Receive/Transmit */
#define USCI_A0_VECTOR          (56 * 1u)                    /* 0xFFF0 USCI A0 Receive/Transmit */
#define WDT_VECTOR              (57 * 1u)                    /* 0xFFF2 Watchdog Timer */
#define TIMER0_B1_VECTOR        (58 * 1u)                    /* 0xFFF4 Timer0_B7 CC1-6, TB */
#define TIMER0_B0_VECTOR        (59 * 1u)                    /* 0xFFF6 Timer0_B7 CC0 */
#define COMP_B_VECTOR           (60 * 1u)                    /* 0xFFF8 Comparator B */
#define UNMI_VECTOR             (61 * 1u)                    /* 0xFFFA User Non-maskable */
#define SYSNMI_VECTOR           (62 * 1u)                    /* 0xFFFC System Non-maskable */
#define RESET_VECTOR            (63 * 1u)                    /* 0xFFFE Reset [Highest Priority] */

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
电赛中使用的MSP430F5529是一款微控制器芯片。为了快速上手MSP430F5529,你可以通过阅读相关的文章来学习。在网上找到的教学视频质量可能参差不齐,而且针对MSP430F5529的视频相对较少。因此,阅读文章可能是一个更好的选择。\[1\] 除了阅读文章外,你还可以使用MSP430的用户手册和数据手册来了解这款芯片的寄存器和功能。用户手册和数据手册可以告诉你芯片内部的寄存器有哪些,以及如何使用它们。此外,还可以了解芯片的管脚功能和重要参数。在比赛过程中,如果找不到适用于你的芯片的现成例程,用户手册将非常有用。\[2\] 在选择开发环境方面,目前常见的有CCS、IAR、GCC和KEIL等。每种开发环境在CSDN上都可以找到相应的搭建方法。对于电赛,使用TI自己推出的开发平台CCS可能更方便。安装完成后,无需再进行其他配置,即可开始MSP430的开发。\[3\] 希望这些信息对你在电赛中使用MSP430F5529有所帮助! #### 引用[.reference_title] - *1* *2* *3* [MSP430F5529LP 2022电赛学习准备及相关例程](https://blog.csdn.net/qq_53870874/article/details/126218403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值