[an error occurred while processing this directive]
|
Для тех кто пишет на С есть пример, в 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