[an error occurred while processing this directive]
для Сишников, для IAR2.27B обработчик прерываний на ассемблере не работает
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Анди 11 декабря 2002 г. 11:43

Для тех кто пишет на С есть пример, в PDFах в котором описано как написать обработчик прерываний
-------------------------------------------------
NAME EXT_INT1

#include "io8515.h"

extern c_int1

COMMON INTVEC(1) ; Code in interrupt vector segment

ORG INT1_vect ; Place code at interrupt vector

RJMP c_int1 ; Jump to assembler interrupt function

ENDMOD

NAME c_int1

#include "io8515.h"

PUBLIC c_int1 ; Symbols to be exported to C function

RSEG CODE ; This code is relocatable, RSEG

c_int1:

st -Y,R16 ; Push used registers on stack

in R16,SREG ; Read status register

st -Y,R16 ; Push Status register

in R16,PIND ; Load in value from port D

com R16 ; Invert it

out PORTB,R16 ; Output inverted value to port B

ld R16,Y+ ; Pop status register

out SREG,R16 ; Store status register

ld R16,Y+ ; Pop Register R16

reti

END
-------------------------------------------------
Попробовал этот пример для прерывания INT0 в 8515 на IAR 1.40A работает, а вот на IAR2.27B не работает, подскажите люди добрые, где грабли ?

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

Ответы



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

E-mail: info@telesys.ru