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

 
 
> В прерываниях CM0/CM3 в конце нужен ClearPending?
GetSmart
сообщение Nov 15 2013, 07:35
Сообщение #1


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Сталкивался ли кто-нибудь с прерываниями NVIC, не требующими вызова NVIC_ClearPendingIRQ() ?

Помнится, в начале своего знакомства с LPC176x не зная NVIC у меня прерывание таймера срабатывало в 2 раза чаще из-за отсутствия в его конце сброса пендинга. Пришлось принять за правило, ставить в конце всех прерываний NVIC_ClearPendingIRQ(). Но сейчас обнаружил в прерывании USB_IRQHandler() биоса LPC1343 тоже отсутствие сброса пендинга. Как и в проекте NXP AN11018.zip, который очень похож на код биоса.

Если кто-то знает такие тонкости сброса пендинга, подскажите, плиз.

И зачем в инициализации проекта AN11018 стоит включение тактирования таймера CT32B1, хотя в коде он не используется? Остаток от другого проекта?

Сообщение отредактировал GetSmart - Nov 16 2013, 00:33


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Nov 18 2013, 08:51
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Если прерывание не успело обработаться до прихода следующего запроса, тогда взведется Pending бит, и после выхода из прерывания программа снова в него зайдет. Если же его стереть перед выходом, то не зайдет. Пока следующий запрос не появится. Разве не так?
Go to the top of the page
 
+Quote Post
adnega
сообщение Nov 18 2013, 10:22
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(ViKo @ Nov 18 2013, 12:51) *
Если прерывание не успело обработаться до прихода следующего запроса, тогда взведется Pending бит, и после выхода из прерывания программа снова в него зайдет. Если же его стереть перед выходом, то не зайдет. Пока следующий запрос не появится. Разве не так?

Хуже! (хотя описаное Вами тоже имеет место быть).
Если последней инструкцией обработчика будет команда сброса флага прерывания, то из-за конвеера/работы_NVIC_с_pending/шин_процессора
она "как бы не успевает выполниться" (т.е. сигнал дойдет до NVIC, но через несколько тактов), а по данным NVIC запрос на прерывание от
периферийного блока не сброшен - милости просим в повторное прерывание.
Но горе мне: не помню, где об этом читал((
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- GetSmart   В прерываниях CM0/CM3 в конце нужен ClearPending?   Nov 15 2013, 07:35
- - adnega   Цитата(GetSmart @ Nov 15 2013, 11:35) Ста...   Nov 15 2013, 08:11
|- - GetSmart   Цитата(adnega @ Nov 15 2013, 14:11) Вроде...   Nov 16 2013, 00:32
|- - Lagman   Цитата(adnega @ Nov 15 2013, 12:11) Вроде...   Nov 18 2013, 19:06
- - GetSmart   Сравниваю разные исходники из примеров Кейла, Иара...   Nov 17 2013, 22:02
|- - GetSmart   Цитата(adnega @ Nov 18 2013, 16:22) Но го...   Dec 21 2013, 04:42
|- - ViKo   Цитата(GetSmart @ Dec 21 2013, 07:42) Не ...   Dec 21 2013, 08:13
- - ViKo   Тогда почему об этом не заботятся в библиотечной ф...   Nov 18 2013, 11:12
|- - adnega   Цитата(ViKo @ Nov 18 2013, 15:12) Тогда п...   Nov 18 2013, 11:32
- - Flexz   Цитата(ViKo @ Nov 18 2013, 15:12) Наверно...   Nov 18 2013, 11:29
- - rudy_b   Технических тонкостей конкретного проца не знаю, н...   Nov 18 2013, 11:36
- - sonycman   А не проще ли сбрасывать флаг сразу по входу в пре...   Nov 18 2013, 18:02
|- - GetSmart   Цитата(sonycman @ Nov 19 2013, 00:02) А н...   Nov 18 2013, 22:38
|- - sonycman   Цитата(GetSmart @ Nov 19 2013, 02:38) Есл...   Nov 19 2013, 09:21
- - SII   Команды типа DSB к обработке прерываний никакого о...   Dec 21 2013, 06:16
|- - GetSmart   Цитата(SII @ Dec 21 2013, 12:16) Способ ф...   Dec 21 2013, 07:31
|- - SII   Цитата(GetSmart @ Dec 21 2013, 11:31) Не ...   Dec 21 2013, 08:20
|- - GetSmart   Цитата(SII @ Dec 21 2013, 14:20) время пе...   Dec 21 2013, 08:45
||- - adnega   Цитата(GetSmart @ Dec 21 2013, 12:45) Чте...   Dec 21 2013, 09:17
|- - GetSmart   Цитата(adnega @ Dec 21 2013, 15:17) Зачем...   Dec 21 2013, 09:23
||- - adnega   Цитата(GetSmart @ Dec 21 2013, 13:23) Это...   Dec 21 2013, 10:42
||- - GetSmart   Цитата(adnega @ Dec 21 2013, 16:42) Если ...   Dec 21 2013, 10:52
||- - adnega   Цитата(GetSmart @ Dec 21 2013, 14:52) Вре...   Dec 21 2013, 11:33
|- - GetSmart   Цитата(SII @ Dec 21 2013, 14:20) Все обра...   Dec 21 2013, 15:00
|- - SII   Цитата(GetSmart @ Dec 21 2013, 19:00) Во-...   Dec 21 2013, 15:35
|- - GetSmart   Цитата(SII @ Dec 21 2013, 21:35) Какие ещ...   Dec 21 2013, 18:40
- - GetSmart   В примерах вполне свежих компиляторов ИАР, Кейл на...   Dec 22 2014, 14:59
- - nill   Если Вы про NVIC_ClearPendingIRQ(), то это один из...   Dec 23 2014, 18:59
- - ViKo   Я тут копался в своем, перечитал тему. Не увидел с...   Feb 10 2015, 11:46
- - jcxz   Цитата(ViKo @ Feb 10 2015, 17:46) Я тут к...   Feb 12 2015, 02:56
- - ViKo   Цитата(jcxz @ Feb 12 2015, 05:56) Не так....   Feb 12 2015, 05:51


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

 


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


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