Пытается написать ISR в сборе, когда кнопка нажимается на мой MSP430. Я следил за некоторыми инструкциями в Интернете, но у меня возникли проблемы с «связыванием» ISR с нажатием кнопки.MSP430 - сборка ISR не запускается
В частности, я пытаюсь подключить к порту P1.1 кнопку, чтобы запустить мой ISR.
шаги я сделал
1) Включить прерывание для Р1.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
Я не достаточно знаком с MSP430, чтобы ответить на вопрос, но с большинством архитектур вы должны зарегистрировать ISR, поместив его адрес в слот таблицы векторов прерываний, соответствует IRQ, который вы хотите обработать , – reirab
Означает ли этот язык ассемблера метки с завершающим двоеточием и те, которые этого не делают? Если да, в чем разница? – wallyk
Ok @reirab, да, я слышал об этой «таблице векторов прерываний», но я не уверен, как ее использовать в этот момент. @wallyk К сожалению, это была опечатка – krb686