Подскажите как в IAR PIC18 сделать асм.вставку(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено Yura 16 октября 2003 г. 11:56

Требуется вставить обработку прерывния:
ORG 18H
GOTO 1018H

Как оформить это дело в IARe?

Дело в том что в загрузчике использую такой код:

#pragma vector=0x18
__interrupt void kak_hochesh_nazovi (void)
{
asm("goto 0x1018h");
}

а компилятор его переделывает в

155 __interrupt void InterruptsLow(void) {
\ InterruptsLow:
\ 000000 REQUIRE `?CLPIC18_2_12_L00`
\ 000000 ; Low priority interrupt
\ 000000 ; Function Enter
\ 000000 ........ MOVFF BSR,LOC(InterruptsLow,OVERLAY,0)
\ 000004 ........ MOVFF _A_STATUS,LOC(InterruptsLow,OVERLAY,1)
\ 000008 ; Saving used registers
157 asm("GOTO 1018H");
\ 000008 0CEF08F0 GOTO 1018H
158 }
\ 00000C ; Restoring used registers
\ 00000C ........ MOVFF LOC(InterruptsLow,OVERLAY,1),_A_STATUS
\ 000010 ........ MOVFF LOC(InterruptsLow,OVERLAY,0),BSR
\ 000014 ; Interrupt function exit
\ 000014 1000 RETFIE 0


В итоге в основной программе озу портиться. Как избавиться от этого дела?

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

Ответы



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

E-mail: info@telesys.ru