Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Interrupts по замыканию ноги (порта) на GND?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
NightCat
Глупый вопрос, знаю, но не могу понять... Я новичек, мне можно smile.gif
Если я поставлю, ну к примеру, порт A на вход, то какие-нибудь Interrupts происходят, когда на отот самый порт (на любую ногу) подается чего нибудь?
Если да, то как настроить? (на Си)
Т.е. вход надо простой или подтянутый и какой интеррапт вызывается и на какое св-во? (Raising, Falling, Low level).
Пытался в ДШ найти (на mega16), что-то прочитал там, но не понял...
Спасибо!
haker_fox
Вот потому-то и надо изучать архитектуру МК http://electronix.ru/forum/index.php?s=&sh...indpost&p=88479. Далее, все зависит от того МК, который Вы применяете. Если это ATmega16, то у нее имеется два внешних прерывания INT0, INT1 (PORTD, линии PD2, PD3 соответственно). События, по-которым эти прерывания должны наступить, настраиваются установкой соотв. битов в регистре MCUCSR и еще каком-то (сори, пишу из дома, даташита не под рукой).
NightCat
To haker_fox
Спасибо!
А я ну точно слепой, веть лежала же схема под носом
http://mypiter.user.kz/tmp4/olad1.gif
Там же подписаны эти INT0 и INT1 и даже INT2, а я не видел...
(Хотя схему эту минут 15 разглядывал...)
Просто я по началу глюпо думаль, что эти интерраптс вызываются по любому из каналов, любого из портов и поэтому пробовал их банально на PA0 - естественно у меня не работало...
Я дурак...
Так это что получается, только пара ножек может вызвать интерраптс? А как тогда быть, если их (интерраптс) надо много? Хотя есть идея, что сразу подавать что-то на нужную ногу и на ногу интерраптс, тогда будет нормально...
beer_warrior
В более новых кристаллах, есть pin change interrupt
они не такие продвинутые как int, зато позволяют
назначить прерывание на любой порт.
Rash
Цитата(beer_warrior @ Feb 19 2006, 16:10) *
В более новых кристаллах, есть pin change interrupt
они не такие продвинутые как int, зато позволяют
назначить прерывание на любой порт.


И, что это за "pin change interrupt" где оно интересно? Кроме INT прерываний есть ещё внешнте проерывания PCINT, отличие в том что вектор прерывания один для 8 PCINT сразу. В ATmega164 (324 и 644) такие прерывания на всех 4-х портах, т.е. 4*8=32 вневних прерываний, только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет.
defunct
Цитата(Rash @ Feb 19 2006, 14:40) *
И, что это за "pin change interrupt" где оно интересно? Кроме INT прерываний есть ещё внешнте проерывания PCINT, отличие в том что вектор прерывания один для 8 PCINT сразу. В ATmega164 (324 и 644) такие прерывания на всех 4-х портах, т.е. 4*8=32 вневних прерываний, только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет.


Ну вы ж про него и пишете... PCINT - Pin Change INT...
beer_warrior
Цитата
только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет.

Например Мега88 вполне доставаемая.
Мне вот пришлось мигрировать, потому что 8-х в потребных количествах
на складе не было :-) (отходят потихоньку)
shans
Цитата(defunct @ Feb 19 2006, 18:01) *
Цитата(Rash @ Feb 19 2006, 14:40) *

И, что это за "pin change interrupt" где оно интересно? Кроме INT прерываний есть ещё внешнте проерывания PCINT, отличие в том что вектор прерывания один для 8 PCINT сразу. В ATmega164 (324 и 644) такие прерывания на всех 4-х портах, т.е. 4*8=32 вневних прерываний, только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет.




pin change interrupt - прерывания по изменению состояния вывода, реализованы во многих tiny, которые достать не проблема. Только не забывайте, что если вы разрешили это прерывание, то оно будет генерироваться, даже если выводы сконфигурированы как выходы, т.е. при изменении состояния вывода ВАШЕЙ ЖЕ ПРОГРАММОЙ. А если вывод является входом внешнего прерывания (int0, например), то будут возникать сразу два прерывания, правда этот момент сам не проверял smile.gif
Rash
Цитата
pin change interrupt - прерывания по изменению состояния вывода, реализованы во многих tiny, которые достать не проблема. Только не забывайте, что если вы разрешили это прерывание, то оно будет генерироваться, даже если выводы сконфигурированы как выходы, т.е. при изменении состояния вывода ВАШЕЙ ЖЕ ПРОГРАММОЙ. А если вывод является входом внешнего прерывания (int0, например), то будут возникать сразу два прерывания, правда этот момент сам не проверял


Для того что б этого не возникало, есть соответсвующие флаги и маски выбора нужных прерываний. Да и не видел я tini c 4-мя портами.
defunct
Цитата(beer_warrior @ Feb 20 2006, 10:01) *
Цитата
только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет.

Например Мега88 вполне доставаемая.


Mega162 еще легче доставаемая ;>
Rash
Цитата(defunct @ Feb 20 2006, 16:25) *
Цитата(beer_warrior @ Feb 20 2006, 10:01) *

Цитата
только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет.

Например Мега88 вполне доставаемая.


Mega162 еще легче доставаемая ;>


Я имел виду 4-ре порта и на всех 8-ми битах каждого порта есть PCINT удобно для многоканально счётчика импульса, что мне и надо было (а писать что доставаемо или нет все подряд можно, но не нужно, да и про реализацию счётчика другими путями, то же не нужно писать, к этой теме это не относится, надеюсь ни кого не обидел)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.