|
Прерывание EXTI |
|
|
|
 |
Ответов
|
Nov 6 2016, 08:57
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(scifi @ Nov 5 2016, 16:39)  Остановиться в обработчике прерывания, посмотреть регистры NVIC. А какие регистры? Цитата Вопрос не понятный: вас смущает, что вообще прерывание возникает? или что оно и должно возникать, но PR при этом нулевой? Смущяет то, то оно не должно возникать, PR равен нулю, как и положенно, а вызов обработчика есть. Суть в следующем: я настраиваю прерывание EXTI3 как переход из "1" в "0" на ноге РА3 и ухожу в стоп режим (PWR_STOPEntry_WFI). на ноге РА3 стоит "1"... ни каких дерганий и помаргиваний.... процессор выходит из стоп режима. Почему? Единственное разрешенное прерывание для выхода из стопа это переход на ноге РА3 из 1 в 0. Может вовсе не по EXTI3 выхожу из стопа.... поставил ловушку в обработчике прерывания EXTI3_IRQHandler(). Попадаю после стопа сразу в этот обработчик..... значит просыпаюсь по ексти3 всётаки..... далее... сразу после пробуждения, ещё до входа в прерывание читаю EXTI->PR, там ноль. после настройки HSE разрешаю прерывания и тут же попадаю в обработчик EXTI3_IRQHandler(). Опять проверяю EXTI->PR. Там НОЛЬ!!! черт с ним, со стопом... потом разберусь.... вопрос в следующем - почему я попадаю в обработчик прерывания, когда флаг прерывания равен нулю? Если EXTI->PR == 0, то не было событий ни каких в эксти. Раз не было событий, какого лешего идет вызов обработчика?
|
|
|
|
|
Nov 6 2016, 10:06
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(scifi @ Nov 6 2016, 14:18)  Очевидно же: те, которые могут представлять интерес. Можно все. Не стесняйтесь, открывайте мануал и читайте про то, что такое NVIC, зачём он нужен, и как он работает. ...ять.... знал бы прикуп, жилбы в рио как решить проблему и какие регистры помогут, сюда бы не обращался. Какой конкретно регистр в NVIC может сказать чем было вызвано прерывание? Их там не так много. Interrupt set-enable registers (NVIC_ISERx) - этот? наврятли. может это Interrupt clear-enable registers (NVIC_ICERx)? Из названия видно что не этот. может быть вот этот "The IABR0-IABR2 registers indicate which interrupts are active.".... 512 в нем. это вроде как 9-ый бит в "1", т.е. 9-ое прерывание активно. 9-е прерывание это как раз EXTI Line3 interrupt. Но ПОЧЕМУ оно активно? В каком NVIC регистре конкретно посмотреть ПОЧЕМУ ПРЕРЫВАНИЕ СРАБОТАЛО?
|
|
|
|
|
Nov 6 2016, 10:51
|

Профессионал
    
Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045

|
Цитата(adnega @ Nov 6 2016, 15:37)  Попробуйте запретить прерывание для EXTI3 (точнее не разрешайте его в NVIC). Может, у вас где-то в другом месте бага и управление как-то попадает в функцию EXTI3_IRQHandler(). Да я тоже думал что где-то НЕ из-за эксти падает в EXTI3_IRQHandler(). Но NVIC всётаки говорит что активное прерывание EXTI3 (спс scifi  ). Есть ещё мысль, что к EXTI3 подключено какоенить другое событие не только порт РА3? например RTC или какая нить другая периферия.... лан... буду разбираться... Цитата Похоже на чудеса. Согласен.... хоть проц перепаивай...
|
|
|
|
Сообщений в этой теме
juvf Прерывание EXTI Nov 5 2016, 10:30        adnega Цитата(juvf @ Nov 6 2016, 15:00) ПОБЕДИЛ ... Nov 6 2016, 12:27         esaulenka Цитата(adnega @ Nov 6 2016, 15:27) Как пр... Nov 7 2016, 08:41    scifi Цитата(juvf @ Nov 6 2016, 13:06) может бы... Nov 6 2016, 10:39 adnega Цитата(juvf @ Nov 5 2016, 13:30) Почему п... Nov 5 2016, 21:05 juvf 2adnega, это всё известно и периферийный сбрасывае... Nov 6 2016, 12:50 adnega Цитата(juvf @ Nov 6 2016, 15:50) после пр... Nov 6 2016, 13:59  juvf Цитата(adnega @ Nov 6 2016, 18:59) Может,... Nov 6 2016, 14:07
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|