MSP430 - 程序集ISR无法运行

时间:2014-09-22 20:20:03

标签: assembly interrupt msp430

在我的MSP430上按下按钮时,尝试在汇编中编写ISR。我已经按照网络上的一些说明进行操作,但是我很难将ISR“连接”到按钮按下。

具体来说,我正在尝试将一个按钮连接到端口P1.1以运行我的ISR。

我已完成的步骤

1)启用P1.1 P1IE |= BIT1;

的中断

2)选择H-> L转换:P1IES |= BIT1;

3)清除标志寄存器:P1IFG &= ~BIT1;

4)启用全局中断:__enable_interrupt();

尽管如此,我想我错过了一些东西。我不明白如何告诉程序运行我的ISR,不幸的是我没有在网上找到任何关于这部分非常清楚的指南。这是我的装配ISR:

    .cdecls C,LIST,"msp430.h"
    .sect ".text:_isr"

buttonISR:      push R4
                mov.w #1000, R4
loop:           dec.w R4
                jnz loop
                reti


    .sect BUTTON_ISR
    .word buttonISR
    .end

1 个答案:

答案 0 :(得分:1)

好吧我明白了。显然,中断向量表是硬编码的存储空间。从数据表中,我发现端口1的中断向量是0xFFDE,转换为INT47,因此我将汇编程序的底部部分更改为:

.sect ".int47"
.word buttonISR
.end

现在效果很好!