Отговори на тема  [ 6 мнения ] 
Прекъсвания в PIC24 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Нед Ное 06, 2016 5:49 pm
Мнения: 41
Мнение Прекъсвания в 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 1:29 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 8:14 am
Мнения: 4578
Местоположение: Новата земя на племето Мутум'ба
Мнение Re: Прекъсвания в PIC24
Пробвай да забраниш нестинга:
INTCON1.NSTDIS := 1;

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

_________________
'просто' е технически синоним на 'красиво'


Съб Мар 18, 2023 1:58 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Фев 07, 2012 10:22 pm
Мнения: 3074
Мнение Re: Прекъсвания в PIC24
то било паскал

procedure Timer1Int; iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;

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


Съб Мар 18, 2023 2:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 10:41 am
Мнения: 1657
Мнение Re: Прекъсвания в PIC24
stefan63 написа:
то било паскал

procedure Timer1Int; iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;

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


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


Чет Май 04, 2023 5:34 am
Профил ICQ WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 1:21 am
Мнения: 10574
Местоположение: София
Мнение Re: Прекъсвания в PIC24
Обикновено пояснение "къде е проблема" е много по-полезно от "не е там" и нравоучения в стил "ма що се изказваш неподготвен"...


Чет Май 04, 2023 10:49 am
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 10, 2005 2:25 pm
Мнения: 4975
Местоположение: София
Мнение Re: Прекъсвания в PIC24
Код:
procedure interrupt(); iv IVT_ADDR_T1INTERRUPT; ics ICS_AUTO;
begin
  // Interrupt service routine code
end;


Чет Май 04, 2023 11:23 am
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 6 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: syscop и 4 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни