[an error occurred while processing this directive] [an error occurred while processing this directive]
Дошел. ;-P
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Yuriy 01 июня 2002 г. 02:15
В ответ на: Ответ: А для тормозов можно поподробнее? Как обозвать обработчик в C - коде и как в ассемблерном исходнике, чтобы был переход с вектора прерывания на ассемблерную процедуру? отправлено Саня 31 мая 2002 г. 23:29


;-------------------------------------------------------
;=======================================================
; interrupt
;
name TIMER1_COMPA_intvec
#include
extern TIMER1_COMPA_interrupt
COMMON INTVEC(1) ; ????? should be INTVEC(2) in ATmega

org TIMER1_COMPA_vect

jmp TIMER1_COMPA_interrupt
;-------
endmod
;=======================================================
; interrupt
;

name TIMER1_COMPA_interrupt
#include "iom163.h"
public TIMER1_COMPA_interrupt

rseg CODE

TIMER1_COMPA_interrupt: ; +6 (int + rjmp)

st -Y, r16 ; 2

in r16,SREG ; 1
st -Y, r16 ; 2

st -Y, r17

st -Y, r30
st -Y, r31
;
; bla-bla-bla
;
ld r31, Y+ ; 2
ld r30, Y+ ; 2

ld r17, Y+ ; 2

ld r16, Y+ ; 2
out SREG, r16 ; 1 Store status register

ld r16, Y+ ; 2

reti
;---------------
; endmod
;=======================================================
end


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

Ответы



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

E-mail: info@telesys.ru