Пример для прерывания приема UART
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Бендер++ 02 декабря 2003 г. 14:40
В ответ на: Прошу помощи у опытных людей(+) отправлено V курс 02 декабря 2003 г. 10:30

Прежде всего требуется разрешить нужное прерывание, "размаскаровав" его в соответствующем регистре. Затем нужно разрешить прерывания вообще с помощью команды
sei; /* ассемблерная */
или
#include <что-то вроде intristic.h кажется>
_SEI(); /* "сишная"*/

=========================
Само прерывание пишется примерно так:


COMMON INTVEC(2 /*для меги*/) ; Сегмент INTVEC - размещение векторов прерываний
ORG UART_RX_vect
JMP URxC_interrupt ; UART Rx Handler
;------------

RSEG CODE(1)
URxC_interrupt:
st -Y, r16 ; сохраняем используемые регистры
in r16, SREG
st -Y, t16
... ; делаем что нужно

ld r16, Y+ ; восстанавливаем регистры
out SREG, r16
ld r16, Y+
reti ; возвращаемся в прерванную программу


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru