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

 
 
> Вопрос по прерываниям, ARM7TDMI, IAR 4.41
coolibin
сообщение Jun 8 2009, 08:36
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Как сделать так, чтобы два прерывания, например, от таймера и от ножки, не прерывали друг друга? достаточно их сделать с одним приоритетом? И как из текущего прерывания очистить прерывания которые сейчас в очереди? достаточно почистить флаги, например:

Код
AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_PIOA);


?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Jun 8 2009, 09:06
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(coolibin @ Jun 8 2009, 12:36) *
Как сделать так, чтобы два прерывания, например, от таймера и от ножки, не прерывали друг друга? достаточно их сделать с одним приоритетом?

Или не делать вложенные прерывания, или сделать с одинаковым приоритетом.

Цитата(coolibin @ Jun 8 2009, 12:36) *
И как из текущего прерывания очистить прерывания которые сейчас в очереди? достаточно почистить флаги, например:
Код
AT91C_BASE_AIC->AIC_ICCR = (1 << AT91C_ID_PIOA);


?

Это вариант сработает только если прерывание настроено на работу по фронту, в противном случае снять можно только непосредственно у источника:
Код
AT91C_BASE_SYS->PIOA_ISR;
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 6th September 2025 - 14:53
Рейтинг@Mail.ru


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