|
|
  |
Interrupts по замыканию ноги (порта) на GND? |
|
|
|
Feb 19 2006, 02:12
|
Группа: Новичок
Сообщений: 11
Регистрация: 18-02-06
Пользователь №: 14 472

|
Глупый вопрос, знаю, но не могу понять... Я новичек, мне можно  Если я поставлю, ну к примеру, порт A на вход, то какие-нибудь Interrupts происходят, когда на отот самый порт (на любую ногу) подается чего нибудь? Если да, то как настроить? (на Си) Т.е. вход надо простой или подтянутый и какой интеррапт вызывается и на какое св-во? (Raising, Falling, Low level). Пытался в ДШ найти (на mega16), что-то прочитал там, но не понял... Спасибо!
|
|
|
|
|
Feb 19 2006, 05:11
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Вот потому-то и надо изучать архитектуру МК http://electronix.ru/forum/index.php?s=&sh...indpost&p=88479. Далее, все зависит от того МК, который Вы применяете. Если это ATmega16, то у нее имеется два внешних прерывания INT0, INT1 (PORTD, линии PD2, PD3 соответственно). События, по-которым эти прерывания должны наступить, настраиваются установкой соотв. битов в регистре MCUCSR и еще каком-то (сори, пишу из дома, даташита не под рукой).
--------------------
Выбор.
|
|
|
|
|
Feb 19 2006, 11:18
|
Группа: Новичок
Сообщений: 11
Регистрация: 18-02-06
Пользователь №: 14 472

|
To haker_fox Спасибо! А я ну точно слепой, веть лежала же схема под носом http://mypiter.user.kz/tmp4/olad1.gifТам же подписаны эти INT0 и INT1 и даже INT2, а я не видел... (Хотя схему эту минут 15 разглядывал...) Просто я по началу глюпо думаль, что эти интерраптс вызываются по любому из каналов, любого из портов и поэтому пробовал их банально на PA0 - естественно у меня не работало... Я дурак... Так это что получается, только пара ножек может вызвать интерраптс? А как тогда быть, если их (интерраптс) надо много? Хотя есть идея, что сразу подавать что-то на нужную ногу и на ногу интерраптс, тогда будет нормально...
|
|
|
|
|
Feb 19 2006, 12:40
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
Цитата(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 не легко, все поставщики говорят, что они не популярные и пока их нет.
|
|
|
|
|
Feb 20 2006, 08:01
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет. Например Мега88 вполне доставаемая. Мне вот пришлось мигрировать, потому что 8-х в потребных количествах на складе не было :-) (отходят потихоньку)
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Feb 20 2006, 08:01
|
Участник

Группа: Свой
Сообщений: 26
Регистрация: 21-12-05
Пользователь №: 12 486

|
Цитата(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, например), то будут возникать сразу два прерывания, правда этот момент сам не проверял
|
|
|
|
|
Feb 20 2006, 09:48
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
Цитата pin change interrupt - прерывания по изменению состояния вывода, реализованы во многих tiny, которые достать не проблема. Только не забывайте, что если вы разрешили это прерывание, то оно будет генерироваться, даже если выводы сконфигурированы как выходы, т.е. при изменении состояния вывода ВАШЕЙ ЖЕ ПРОГРАММОЙ. А если вывод является входом внешнего прерывания (int0, например), то будут возникать сразу два прерывания, правда этот момент сам не проверял Для того что б этого не возникало, есть соответсвующие флаги и маски выбора нужных прерываний. Да и не видел я tini c 4-мя портами.
|
|
|
|
|
Feb 20 2006, 12:42
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
Цитата(defunct @ Feb 20 2006, 16:25)  Цитата(beer_warrior @ Feb 20 2006, 10:01)  Цитата только достать эти ATmega не легко, все поставщики говорят, что они не популярные и пока их нет. Например Мега88 вполне доставаемая. Mega162 еще легче доставаемая ;> Я имел виду 4-ре порта и на всех 8-ми битах каждого порта есть PCINT удобно для многоканально счётчика импульса, что мне и надо было (а писать что доставаемо или нет все подряд можно, но не нужно, да и про реализацию счётчика другими путями, то же не нужно писать, к этой теме это не относится, надеюсь ни кого не обидел)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|