Форум РадиоКот https://radiokot.ru/forum/ |
|
ATMega48 внешние прерывания https://radiokot.ru/forum/viewtopic.php?f=20&t=75906 |
Страница 1 из 1 |
Автор: | BCluster [ Вт июл 24, 2012 07:58:47 ] |
Заголовок сообщения: | ATMega48 внешние прерывания |
Всем привет. Собственно вопрос такой. Есть у меги48 куча ног которые могут вызвать прерывания PCINTx. Мне нужно знать какая собственно нога и его и вызвала. Нужно ловить как передний так и задний фронты, причем знать какой был пойман (но это не проблема если знать какая ножка вызвала прерывание). В даташите я чет не нашел ничего. Всем спасибо заранее, удачи. |
Автор: | luxin [ Вт июл 24, 2012 09:37:51 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Считываете состояние портов. А какой, Вы можете определить по прерыванию, точнее можно в нем и считывать. |
Автор: | BCluster [ Вт июл 24, 2012 09:45:35 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Считывать состояние портов это понятно, однако это достаточно сложно ввиду того, что мне нужны прерывания по обоим фронтам. Думал может есть какой-то регистр в котором содержится эта инфа, а я его проглядел |
Автор: | luxin [ Вт июл 24, 2012 10:17:07 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Для этого придется хранить предыдущее состояние портов. |
Автор: | BCluster [ Вт июл 24, 2012 11:16:05 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Понял, спасибо, думал может что-то проглядел, ан нет, придется мучаться))) |
Автор: | luxin [ Вт июл 24, 2012 11:21:33 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Почему мучатся? У Вас вместо регистров будут ячейки памяти, а для определения пина используете логические операции. Пара строчек ничего не усложняет. |
Автор: | zero648 [ Вт июл 24, 2012 11:34:20 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Если прерывания вызываются по переднему и заднему фронтам, так вроде все логично получается, в обработчике проверяем состояние пинов и сравниваем с предыдущим их состоянием, так и можно узнать на какой ноге случилось изменение логического уровня. |
Автор: | zero648 [ Вт июл 24, 2012 11:36:52 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Можно также векторы указать на один обработчик, и в одном обработчике все делать. |
Автор: | luxin [ Вт июл 24, 2012 11:46:51 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
zero648 писал(а): ... в обработчике проверяем состояние пинов и сравниваем с предыдущим их состоянием, так и можно узнать на какой ноге случилось изменение логического уровня. Так о чем и речь, накладные раходы мизерные.
|
Автор: | BCluster [ Вт июл 24, 2012 12:19:06 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Обработчик на передний и задний фронт в любом случае один, ибо вектор один. Ну не проблема - просто думал мож че есть ) Просто у мя оперативки мало шоппц, думал мож съэкономить на переменных ))) |
Автор: | zero648 [ Вт июл 24, 2012 12:19:38 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
+100% |
Автор: | zero648 [ Вт июл 24, 2012 12:22:14 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Я просто думал на разных ногах будут прерывания по разным векторам, просто с 48 не сталкивался |
Автор: | luxin [ Вт июл 24, 2012 12:30:57 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
BCluster писал(а): Ну не проблема - просто думал мож че есть ) Просто у мя оперативки мало шоппц, думал мож съэкономить на переменных ))) Ну, в принципе тем и хорош 48, что если не хватит, то можно заменить на 88 или 168. Удачи в реализации проекта.
|
Автор: | BCluster [ Вт июл 24, 2012 12:36:45 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Можно, но за ними надо ехать на рынок, а мну влом Спасибо ) |
Автор: | luxin [ Вт июл 24, 2012 12:44:07 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
BCluster писал(а): Спасибо ) Пожалуйста.
|
Автор: | Frogfot [ Вт июл 24, 2012 16:50:56 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
BCluster писал(а): Есть у меги48 куча ног которые могут вызвать прерывания PCINTx. См. раздел 13.2.4 даташита |
Автор: | luxin [ Вт июл 24, 2012 17:03:47 ] |
Заголовок сообщения: | Re: ATMega48 внешние прерывания |
Frogfot, вроде все уже выяснили. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |