|
Прерывание 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 регистре конкретно посмотреть ПОЧЕМУ ПРЕРЫВАНИЕ СРАБОТАЛО?
|
|
|
|
Сообщений в этой теме
juvf Прерывание EXTI Nov 5 2016, 10:30    adnega Цитата(juvf @ Nov 6 2016, 13:06) ПОЧЕМУ П... Nov 6 2016, 10:37     juvf Цитата(adnega @ Nov 6 2016, 15:37) Попроб... Nov 6 2016, 10:51      adnega Цитата(juvf @ Nov 6 2016, 13:51) Согласен... Nov 6 2016, 11:56       juvf Цитата(adnega @ Nov 6 2016, 16:56) Как вы... Nov 6 2016, 12:00        adnega Цитата(juvf @ Nov 6 2016, 15:00) ПОБЕДИЛ ... Nov 6 2016, 12:27         esaulenka Цитата(adnega @ Nov 6 2016, 15:27) Как пр... Nov 7 2016, 08:41 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
|
|
|