реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Ловить фронт и спад импульса на INT0
kv_addr
сообщение Aug 28 2005, 04:19
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279



Вопрос по AVR, в частности, по AT90S2313.

В регистре управления прерыванием MCUCR биты ISC01 и ISC00 отвечают за то, каким событием на входе INT0 вызывается прерывание, а именно: 00 - низким уровнем, 10 - переходом из 1 в 0, 11 - переходом из 0 в 1.

Предположим, что в регистре биты установлены в 11. Если на INT0 вход поступает последовательность импульсов, то каждое новое прерывание происходит по фронту. А если нужно, чтобы первое прерывание произошло по фронту, а второе - по спаду, третье - снова по фронту, и т.д.? Могу ли я при обработке прерывания инвертировать бит ISC0 для получения необходимого результата? Правильно ли меня поймет контроллер? Чем может быть чреват такой трюк? Обязательно ли в этом случае перед сменой данных в MCUCR запрещать прерывание, а после модификации - возобновлять?
Go to the top of the page
 
+Quote Post
amator
сообщение Aug 28 2005, 05:21
Сообщение #2





Группа: Новичок
Сообщений: 11
Регистрация: 19-02-05
Пользователь №: 2 756



Безусловно можешь. Если следовать правилам хорошего тона, то кроме запрещения прерываний перед последующим разрешением необходимо ещё очистиь флаг INTF записав в него 1.
Go to the top of the page
 
+Quote Post
muravei
сообщение Aug 28 2005, 06:37
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(kv_addr @ Aug 28 2005, 07:19)
Могу ли я при обработке прерывания инвертировать бит ISC0 для получения необходимого результата? Правильно ли меня поймет контроллер? Чем может быть чреват такой трюк? Обязательно ли в этом случае перед сменой данных в MCUCR запрещать прерывание, а после модификации - возобновлять?
*

Можешь.
Правильно.
Ничем, надо только успеть до след. события.
Нет, после прерывания, оно и так запрещено.

Флаг сбрасывает, команда RETI.(так что в ручную не обязательно)
Go to the top of the page
 
+Quote Post
arttab
сообщение Aug 29 2005, 01:45
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Есть и минус - помехи. их надо учитывать при обработки. Можно расмотреть старт по фронту, а потом выборки делать и анализировать.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
kalinka16
сообщение Aug 29 2005, 04:11
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 42
Регистрация: 30-06-05
Пользователь №: 6 414



Как вариант - использовать INT0 и INT1 (сконфигурировать один по фронту, другой по спаду)
Go to the top of the page
 
+Quote Post
Rst7
сообщение Aug 29 2005, 05:38
Сообщение #6


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Нефиг извращаться. Возьми Tiny2313, там можно прерывание по any change включить. Кроме того, 90S2313 все равно EOL.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
yung
сообщение Aug 29 2005, 18:27
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 25-03-05
Из: Рязань
Пользователь №: 3 669



На 8-й Меге я так делал и для очистки совести флаг сбрасывал.
Go to the top of the page
 
+Quote Post
muravei
сообщение Aug 31 2005, 04:25
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(Rst7 @ Aug 29 2005, 08:38)
Нефиг извращаться. Возьми Tiny2313, там можно прерывание по any change включить. Кроме того, 90S2313 все равно EOL.
*

Не использовать"any change", в некоторой степени - защита от помех.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016