Форум РадиоКот https://radiokot.ru/forum/ |
|
stm32f4, rtc не вылетает в прерывания https://radiokot.ru/forum/viewtopic.php?f=59&t=151396 |
Страница 1 из 1 |
Автор: | themaster [ Ср янв 03, 2018 23:02:38 ] |
Заголовок сообщения: | stm32f4, rtc не вылетает в прерывания |
Всем добрый вечер! Колупаю свежеприобретённую плату на stm32f407zet6. Пытаюсь завести прерывания от RTC. Программа на ассемблере, поэтому весь код приводить не буду. Я действую следующим образом: захожу в отладку Keil'а, запускаю программу на выполнение. Мне надо, чтобы каждую секунду программа вылетала на прерывание (простейшая моргалка). В обработчике прерывания стоит точка останова, программа не останавливается. Я нажимаю "Стоп" и проверяю состояние программы: 1) NVIC, пункт 57 ( RTC Alarms (A and B) through EXTI line interrupt ): E(nabled) = 1, P(ending) = 0, A(ctive) = 0. То есть, прерывание разрешено, но не активно и не обрабатывается. 2) EXTI: IMR, MR17 = 1, EMR = 0, то есть, EXTI линия 17 (на которой висит RTC) включена. EMR = 0, то есть, это прерывание, а не событие. RTSR (rising edge) TR17 = 1, выбран возрастающий фронт. PR = 0, никаких pending interrupts нет. То есть, прерывание от RTC не добралось до EXTI. 3) RTC: В регистре CR флаги ALRAE и ALRAIE стоят. То есть, Alarm A включено и прерывание по нему - тоже. В регистре ISR флаг ALRAF стоит - тревога сработала. Но прерывания - не было! Команда CPSIE f в конце настройки присутствует и выполнена. Глобальные прерывания должны быть разрешены. Вопрос: что я забыл настроить? Куда лезьть, что проверять? Может, я какие-то периферийные прерывания запретил, или какой-нибудь уровень прерываний не выставлен? Но тогда бы в EXTI висел бит Pending... В идеале, если я действительно забыл что-то включить/отключить/настроить, я предполагаю прямо в отладчике исправить соответствующий бит, убедиться, что прерывания срабатывают - а дальше править программу. Только вот что исправлять - непонятно. Буду благодарен за любые идеи и подсказки... |
Автор: | themaster [ Пт янв 05, 2018 16:32:19 ] |
Заголовок сообщения: | Вопрос закрыт, сам разобрался |
При настройке часов надо не забывать делать их сброс. В серии STM32F4 сбросить сами часы нельзя, но можно сбросить Backup Domain. Когда сбросил - всё заработало. |
Автор: | Alex1603 [ Пт фев 21, 2025 11:03:54 ] |
Заголовок сообщения: | Re: stm32f4, rtc не вылетает в прерывания |
Добрый день! Сталкнулся с такой же проблемой но на STM32H7B0. сброс backup домена не помогает. Поясните как вы сбрасывали его. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |