Я хочу включить вложенные прерывания на msp430, поскольку я хочу использовать UART в ISR таймера. Любая помощь будет оценена по достоинству.Как включить вложенные прерывания в msp430g2553?
ответ
Когда msp430
микроконтроллера собирается начать выполнять прерывание функции обработчика, то первое, что он делает это, чтобы отключить глобальные «перебивает» включен флаг, который немного в регистре состоянии r2
. Это эффективно запрещает вложение прерываний по умолчанию.
Чтобы обойти это, включите прерывание, установив флаг регистра обратно в 1 в начале ваших функций обработчика прерываний. Для упрощения синтаксиса, есть на самом деле eint
инструкция для этого:
asm("eint");
Обычно существуют также компилятор конкретных макросов для emnabe, которые позволяют избежать написания кода сборки. Это должно работать как с GCC и IAR:
__enable_interrupt();
(Пожалуйста, не засоряйте вложенности прерываний В большинстве случаев нет абсолютно никакой необходимости в ней почти наверняка, лучше изменить дизайн, чем пойти на это.. .)