Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Прекъсвания в PIC24
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=18777
Страница 1 от 1

Автор:  veryoldman [ Съб Мар 18, 2023 2:29 pm ]
Заглавие:  Прекъсвания в PIC24

Здравейте,

Опитвам се да прехвърля една програма от PIC18F26K22 на PIC24FJ256GA702.
На PIC18 всичко си работи нормално. В PIC24 не мога да подкарам никое прекъсване.
Прекъсванията са само две - от UART и от TIMER1.
Флагът за прекъсване се вдига нормално, т.е. ако проверявам главния Loop дали
Код:
If IFS0.3 = 1 then
  begin
    IFS0.3 := 0;
    Refresh;
  end;

процедурата Refresh се изпълнява.

Ако изполвам процедура за прекъсване
Код:
procedure Timer1Int; iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;
begin
   IFS0.T1IF := 0;
   Refresh;
end;

процедурата Refresh не се изпълнява.

Компилаторът е MikroPascal на MikroE.
Само да отбележа, че за първи път пиша за PIC24 и очевидно пропускам нещо.

Разрешавам прекъсване от Timer1, разрешавам глобални прекъсвания (което май няма нужда по подразбиране), задавам приоритет на прекъсването
Код:
  IEC0.T1IE := 1;                     { Timer 1 Interrupt Enable               }
  IFS0.T1IF := 0;
  IPC0.T1IP0 := 0;                    { Timer 1 Interupt Priority = 4          }
  IPC0.T1IP1 := 0;
  IPC0.T1IP2 := 1;
  INTCON2.GIE := 1;


Дайте някакъв акъл

Автор:  Н'бабане Гт'муан'га [ Съб Мар 18, 2023 2:58 pm ]
Заглавие:  Re: Прекъсвания в PIC24

Пробвай да забраниш нестинга:
INTCON1.NSTDIS := 1;

Също така, мисля че им трябват някакви ненулеви приоритети в регистрите IPC и разрешение в IEC

Автор:  stefan63 [ Съб Мар 18, 2023 3:07 pm ]
Заглавие:  Re: Прекъсвания в PIC24

то било паскал

procedure Timer1Int; iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;

някъде тук е кучето заровено..

Автор:  relsys [ Чет Май 04, 2023 6:34 am ]
Заглавие:  Re: Прекъсвания в PIC24

stefan63 написа:
то било паскал

procedure Timer1Int; iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;

някъде тук е кучето заровено..


Не, не е заровено там кучето. Що така обичате да се изказвате неподготвени....

Автор:  itso.t [ Чет Май 04, 2023 11:49 am ]
Заглавие:  Re: Прекъсвания в PIC24

Обикновено пояснение "къде е проблема" е много по-полезно от "не е там" и нравоучения в стил "ма що се изказваш неподготвен"...

Автор:  Desert Leo [ Чет Май 04, 2023 12:23 pm ]
Заглавие:  Re: Прекъсвания в PIC24

Код:
procedure interrupt(); iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;
begin
  // Interrupt service routine code
end;

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/