реклама на сайте
подробности

 
 
> Векторы прерывания в ИАРе, или дурацкий вопрос...
gladov
сообщение May 6 2008, 11:43
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Простите за глупый вопрос, но как мне повесить в ИАРе (С++) одну функцию-обработчик на несколько векторов?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Freeze Anti
сообщение May 7 2008, 08:27
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



а разве нельзя сделать просто?
Код
#pragma vector=vector_1
__interrupt void function(void);

#pragma vector=vector_2
__interrupt void fuction(void);

...

#pragma vector=vector_n
__interrupt void function(void)
{

. . .

}


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post
prottoss
сообщение May 7 2008, 08:53
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Freeze Anti @ May 7 2008, 15:27) *
а разве нельзя сделать просто?
А как function будет знать, с какого вектора ее вызвали???
Я предлагал вот так:
Код
typedef char VECTOR_ID;


#pragma vector=vector_1
__interrupt void isr_vector_1(void)
{ isr_main(1);
}

#pragma vector=vector_2
__interrupt void isr_vector_2(void)
{ isr_main(2);
}
...

#pragma vector=vector_n
__interrupt void isr_vector_n(void)
{ isr_main(n);
}

void isr_main(VECTOR_ID id)
{  switch(id)
   {  case 1:
      ....
      break;

      case 2:
      ...
      break;

      case n:
      ...
      break;
   }
}


--------------------
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01621 секунд с 7
ELECTRONIX ©2004-2016