Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Уловить пропадание и появление импульсов на входе в условии помех.

Отправлено Dikoy 03 мая 2009, г. 17:17


Простая, на первый взгляд, задача. На вход прерывания INT0 поступает меандр 50 Гц. Нужно отловить момент, когда он пропадёт и когда начнётся снова. М128, 16 МГц.
Фигня. Завожу таймер 0 на прерывание по переполнению с максимальным делителем, получаю прерывание с частотой 61 Гц. Инкрементирую в нём флаг. В прерывании INT0 этот флаг сбрасываю. В основном коде проверяю его значение. Больше 10? Выключаю прерывание по переполнению и жду, когда флаг сбросится в инте. Обычное дело.
Но есть косяк. После пропадания импульсов на линии иногда появляются помехи (раз в 2 сек в среднем) и вызывают INT0. Флаг сбрасывается, всё запускается, а этого не надо.
То есть стоит задача не только пофиксить пропадание импульсов на INT0, но при этом ещё грамотно зафиксировать момент их начала, отделив помехи от правильного сигнала. При этом максимально разгрузив прерывания (должны выполняться максимально быстро).
Скорость фиксирования пропадания и появления импульсов не очень критична, но желательно за время 5-10 импульсов на INT0 (100-200 мС) сообразить, появились ли они (или пропали).

Подскажите, как это написать покомпактней и покрасивше!


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru