Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прерывания порта P2, регистр флагов P2IFG?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Vasilius
Только начал осваивать хвалёные MSP430__ и уже столкнулся с недоразумением (по крайней мере, на мой взгляд).
Вопрос: Нормально ли это, что устанавливается флаг прерывания (регистр P2IFG) в ответ на изменение входного сигнала на соответствующей ноге порта P2, в то время когда все мыслимые прерывания запрещены? При этом, я точно уверен, что сами прерывания не возникают. Устанавливается только флаг запроса прерываний. Явно вижу это в дебаггере IARа и косвенно в реальном железе.

MK: MSP430F1232.
Работаю с bit.2 порта P2 от заземленной, закондёренной и подтянутой к питанию кнопки.

P2DIR &= ~BIT2; //нога на вход
P2SEL &= ~BIT2; //нога – как порт ввода/вывода
P2IES &= 0x00; //для определенности
P2IE &= ~BIT2; //запрещаем прерывания от этой ноги!
__disable_interrupt(); //и ещё раз категорически!!!

Не новичок вроде бы, но с этим MK растерялся не на шутку. Благодарю за ответ заранее.
Dog Pawlowa
Я не понял, а что странного?
Начиная с того, что я изучал в жизни первым - 8259, всегда были флаги запроса прерывания, и маска разрешения. Флаги формируются по соответствующему событию, независимо от маски, а прерывание выполняется, только если оно не замаскировано.
А где не так? Я не буду использовать такие микроконтроллеры blink.gif

А, понял. Разница в терминах. Учтите - флаги - это запросы, а не признаки входа в обработку прерывания.
Vladimir_T
Флаг должен устанавливаться, а вызов обработчика прерыания зависит от того разрешено ли вами оно (от порта в целом). Проанализировав флаги прерывания от порта вы можете в обработчике иж обработать поочедно.
Vasilius
Да понял. Уже и сам дошел. Меня просто смутила фраза из переводной документации:

Каждый бит PnIFG – это флаг прерывания соответствующей ножки ввода/вывода, устанавливаемый, когда происходит перепад выбранного входного сигнала на ножке. Все флаги прерывания PnIFG запрашивают прерывание, когда установлен их соответствующий бит PnIE и установлен бит GIE. Каждый флаг PnIFG должен быть сброшен программно. …

Всем большое спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.