ATMega48 внешние прерывания

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

ATMega48 внешние прерывания

Сообщение BCluster »

Всем привет. Собственно вопрос такой. Есть у меги48 куча ног которые могут вызвать прерывания PCINTx. Мне нужно знать какая собственно нога и его и вызвала. Нужно ловить как передний так и задний фронты, причем знать какой был пойман (но это не проблема если знать какая ножка вызвала прерывание). В даташите я чет не нашел ничего. Всем спасибо заранее, удачи.
Реклама
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

Считываете состояние портов. А какой, Вы можете определить по прерыванию, точнее можно в нем и считывать.
Реклама
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: ATMega48 внешние прерывания

Сообщение BCluster »

Считывать состояние портов это понятно, однако это достаточно сложно ввиду того, что мне нужны прерывания по обоим фронтам.
Думал может есть какой-то регистр в котором содержится эта инфа, а я его проглядел
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

Для этого придется хранить предыдущее состояние портов.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: ATMega48 внешние прерывания

Сообщение BCluster »

Понял, спасибо, думал может что-то проглядел, ан нет, придется мучаться)))
Реклама
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

Почему мучатся? У Вас вместо регистров будут ячейки памяти, а для определения пина используете логические операции. Пара строчек ничего не усложняет.
Реклама
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ATMega48 внешние прерывания

Сообщение zero648 »

Если прерывания вызываются по переднему и заднему фронтам, так вроде все логично получается, в обработчике проверяем состояние пинов и сравниваем с предыдущим их состоянием, так и можно узнать на какой ноге случилось изменение логического уровня. :)))
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ATMega48 внешние прерывания

Сообщение zero648 »

Можно также векторы указать на один обработчик, и в одном обработчике все делать.
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

zero648 писал(а):... в обработчике проверяем состояние пинов и сравниваем с предыдущим их состоянием, так и можно узнать на какой ноге случилось изменение логического уровня. :)))
Так о чем и речь, накладные раходы мизерные.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: ATMega48 внешние прерывания

Сообщение BCluster »

Обработчик на передний и задний фронт в любом случае один, ибо вектор один.
Ну не проблема - просто думал мож че есть ) Просто у мя оперативки мало шоппц, думал мож съэкономить на переменных )))
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ATMega48 внешние прерывания

Сообщение zero648 »

+100% :beer:
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: ATMega48 внешние прерывания

Сообщение zero648 »

Я просто думал на разных ногах будут прерывания по разным векторам, просто с 48 не сталкивался :tea:
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

BCluster писал(а):Ну не проблема - просто думал мож че есть ) Просто у мя оперативки мало шоппц, думал мож съэкономить на переменных )))
Ну, в принципе тем и хорош 48, что если не хватит, то можно заменить на 88 или 168. Удачи в реализации проекта.
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

Re: ATMega48 внешние прерывания

Сообщение BCluster »

Можно, но за ними надо ехать на рынок, а мну влом :D
Спасибо )
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

BCluster писал(а):Спасибо )
Пожалуйста.
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: ATMega48 внешние прерывания

Сообщение Frogfot »

BCluster писал(а):Есть у меги48 куча ног которые могут вызвать прерывания PCINTx.

См. раздел 13.2.4 даташита
Хорошему коту и в декабре - март :)
luxin
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Сб янв 29, 2011 15:00:44
Откуда: Polesye

Re: ATMega48 внешние прерывания

Сообщение luxin »

Frogfot, вроде все уже выяснили.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»