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

 
 
> Несколько прерываний, Как разрулить?
Ruffian
сообщение Mar 30 2011, 12:12
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 4-03-11
Пользователь №: 63 397



Нужно ловить два сигнала от датчиков (для простоты прямоугольные).
Первый сигнал нужно измерить его длительность.
Для второго сигнала просто считать количество (при каждом импульсе инкремент некоей переменной).
Решил повесить эти два сигнала на INT0 и INT1. Но как разрулить - не пойму.
Если по INT0 начинать считать длительность, то для этого нужен ещё и таймер. Значит третье прерывание добавляется. А что будет, если придет прерывание INT1?
В общем каша образовалась.
Может проще сделать вообще без прерываний, тупо в цикле опрашивать порт и смотреть, появились импульсы или нет и реагировать, если они появились?
Что посоветуете?

Сообщение отредактировал Ruffian - Mar 30 2011, 12:13
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
-SANYCH-
сообщение Mar 30 2011, 20:12
Сообщение #2


Местный
***

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



Цитата
ISR(TIMER1_CAPT_vect){

if (PORTA == 0xAA) PORTA = 0x55;
else PORTA == 0xAA;


Здесь наверное лишнее одно равно. Дмаю должно быть так:

Цитата
ISR(TIMER1_CAPT_vect){

if (PORTA == 0xAA) PORTA = 0x55;
else PORTA = 0xAA;
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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