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

 
 
> Два вектора на одно прерывание, Как?
SasaVitebsk
сообщение Jul 17 2006, 22:59
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Мне необходимо для двух векторов назначить одно и то же прерывание. Я пробую это сделать так.

#pragma vector=TIMER3_COMPA_vect // Отображение картинки Master
#pragma vector=INT7_vect // Отображение картинки Slave
__interrupt void Regeneration(void)

Система выдаёт предупреждение, что типо только одна является активной. Ну и нафига она за меня думает. smile.gif В данном случае это очень красивый и продуманный шаг. Но как сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andy Mozzhevilov
сообщение Jul 18 2006, 03:25
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(SasaVitebsk @ Jul 18 2006, 04:59) *
Мне необходимо для двух векторов назначить одно и то же прерывание. Я пробую это сделать так.

#pragma vector=TIMER3_COMPA_vect // Отображение картинки Master
#pragma vector=INT7_vect // Отображение картинки Slave
__interrupt void Regeneration(void)

Система выдаёт предупреждение, что типо только одна является активной. Ну и нафига она за меня думает. smile.gif В данном случае это очень красивый и продуманный шаг. Но как сделать?


#pragma vector относится к функции, определенной следом. В вашем случае компилятор не может разобраться, какой вектор вы хотите назначить своей функции.

Код
void Regeneration(void)
{
...
}


#pragma vector=TIMER3_COMPA_vect                
__interrupt void T3_isr(void)
{
    Regeneration();
}

#pragma vector=INT7_vect                              
__interrupt void INT7_isr(void)
{
    Regeneration();
}


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 18 2006, 07:44
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Andy Mozzhevilov @ Jul 18 2006, 06:25) *
Код
void Regeneration(void)
{
...
}

Я бы даже сказал
Код
static void Regeneration(void)
{
...
}



Цитата(&-rey @ Jul 18 2006, 09:20) *
Код
#pragma vector = USART0_UDRE_vect, USART0_TXC_vect
Красиво! Даже и в голову не приходило такое :-)

Сообщение отредактировал Сергей Борщ - Jul 18 2006, 07:46


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:11
Рейтинг@Mail.ru


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