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

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Вложенные прерываня
KeiserSose
сообщение Jun 19 2009, 19:41
Сообщение #46





Группа: Новичок
Сообщений: 4
Регистрация: 17-11-08
Пользователь №: 41 713



Убедил. Был неправ. Вспылил.
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Jun 23 2009, 05:43
Сообщение #47


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

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Половину не понял из того, что написано...
Хотя вопрос сильно интересует.
Проц. LPC2364
INT2(Р2.12) & INT3(Р2.13) подключены как счетные входы. Частоты примерно 400-500 Гц и 200-250Гц.

Обработчики такие:

__irq __nested __arm void EINT2_Handler (void)
{
EXTINT|= EINT2; /* clear interrupt */
__enable_interrupt(); /* handles nested interrupt */
//***********************************************************

ssf_o++;

//***********************************************************
VICVectAddr = 0; /* Acknowledge Interrupt */
}
__irq __nested __arm void EINT3_Handler (void)
{

EXTINT|= EINT3; /* clear interrupt */
__enable_interrupt(); /* handles nested interrupt */
//***********************************************************
count_msr++;


//***********************************************************
VICVectAddr = 0; /* Acknowledge Interrupt */
}

Короче работает только один счетчик , прерывание которого имеет больший приоритет.
Если убираю _nested и __enable_interrupt(); дела не меняет, тоже самое.

Тоже самое на 51-х, Меге и NEC работает прекрасно. Вопрос КАК извернуться? Объясните, пожалуйста , что не так...
Go to the top of the page
 
+Quote Post
meister
сообщение Jun 23 2009, 06:41
Сообщение #48


Местный
***

Группа: Участник
Сообщений: 219
Регистрация: 20-11-07
Пользователь №: 32 484



Цитата(Step_ARM @ Jun 23 2009, 09:43) *
Короче работает только один счетчик , прерывание которого имеет больший приоритет.
Вопрос КАК извернуться? Объясните, пожалуйста , что не так...


Когда ничего не помогает, прочтите, наконец, инструкцию.

This bit is cleared by writing a one to it, except in level sensitive mode when
the pin is in its active state.

и

стандарт языка еще, про операцию |=
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Jun 23 2009, 08:12
Сообщение #49


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

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Цитата(meister @ Jun 23 2009, 10:41) *
Когда ничего не помогает, прочтите, наконец, инструкцию.

This bit is cleared by writing a one to it, except in level sensitive mode when
the pin is in its active state.

и

стандарт языка еще, про операцию |=

М-да. Сказать нечего... Заменил |= на = и все заработало.
Запарился совсем. Спасибо.
Go to the top of the page
 
+Quote Post

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

 


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


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