Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: lpc2478 + прерывание EINT1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Alexander___
Доброго времени суток!
Уже третий день бьюсь над обработкой прерывания от внешнего источника 1. Не получается. help.gif
Загвоздка похоже в конфигурировании Р2.11(PINSEL4 23:22). Какую бы функцию не задал для этого вывода 00, 01, 10, 11, все воспринимается как 00. Т.е. могу оценить состояние вывода Р2.11 через FIO2PIN (FIO2PIN&0x800). Причем даже при FIO2DIR=0х800!
Может кто сталкивался с такой ситуацией? Подскажите где собака порылась

И еще если задать IO2IntEnR=0х800 и IO2IntEnF=0x800, то по соответствующим перепадам сигнала флаги в регистрах IO2IntStatR и IO2IntStatF устанавливаются в 0х800. В даташите сказано, что запись 1 в соответствующий бит регистров IO2IntEnR и IO2IntEnF разрешает прерывание по изменению сигнала на указанном выводе порта 2, но нет регистра для адреса функции обработки такого прерывания, нет бита в регистре VICIntEnable для разрешения такого прерывания. Одним словом нет возможности для обработки такого прерывания. Это интересно зачем так? Или может я что-то не так понял?

Заранее спасибо.


Alexander___
Ну вот. Либо слишком глупый вопрос задал, либо одно из двух sm.gif Неужели никто с такой ситуацией не сталкивался?! Или никто не использует внешнее прерывание 1? Или никому это не интересно?
yashok
Что касается конфигурации P2.11, может быть у Вас включен LCD контролер. Он задействует этот пин.

По поводу прерываний - UM10237 стр 195

Цитата
GPIO0 and GPIO2 interrupts share the same VIC slot with the External Interrupt 3
event.
DpInRock
Цитата
нет бита в регистре VICIntEnable для разрешения такого прерывания
Внимательное чтение таблицы 116 отвечает на этот вопрос так: EINT3=GPIO.

Цитата
Какую бы функцию не задал для этого вывода 00, 01, 10, 11, все воспринимается как 00.

Вы сами понимаете смысл этой фразы?

В формулировке вопроса содержится минимум половина ответа. Формулируя вопрос забудьте о том, что телепаты существуют.
Alexander___
Цитата(DpInRock @ May 17 2011, 11:05) *
Вы сами понимаете смысл этой фразы?

Еще как понимаю! Понимаю еще что Вы не понимаете. sm.gif А телепаты это кто?
Ладно. Расшифрую.
Насколько я понимаю (может и ошибаюсь), если задать альтернативную функцию для вывода порта, то значение бита в FIOPN не должно меняться? А тут какю бы функцию не задал, в данном случае или EINT1/
LCDCLKIN, или MCIDAT1 или I2STX_CLK, изменение сигнала на Р2.11 влияет на 11 бит регистра FIO2PIN.
Так понятно изложил? sm.gif



Цитата(yashok @ May 17 2011, 10:57) *
Что касается конфигурации P2.11, может быть у Вас включен LCD контролер. Он задействует этот пин.

По поводу прерываний - UM10237 стр 195

Спасибо за подсказку про прерывания, только у меня в мануале это страница 188 оказалась. Наверное разные версии.

LCD контролер включен. А разве сброс 5 бита в LCD_POL не может разрешить прерывание? Может опять я невнимательно доку читал.
yashok
Цитата
если задать альтернативную функцию для вывода порта, то значение бита в FIOPN не должно меняться


Описание FIOPIN

Fast Port Pin value register using FIOMASK. The current state
of digital port pins can be read from this register, regardless of
pin direction or alternate function selection
(as long as pins are
not configured as an input to ADC). The value read is masked
by ANDing with inverted FIOMASK. Writing to this register
places corresponding values in all bits enabled by zeros in
FIOMASK.
Alexander___
Всем спасибо! Заработало. Подключил прерывание через GPIO=EINT3. Тему можно закрыть.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.