[an error occurred while processing this directive]
(Про INT0 в AVR) Задолбался искать баг - победил однако :))
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Assm 25 июля 2006 г. 20:35

Может кому и пригодится, вот наткнулся на такую замечательную особенность триггеров шмидта в AVR.
На INT0 былоа повешено оптопара с подтягивающим резюком 10К, для контроля ZeroCross в сети. Оптопара работала в режиме малых токов через светодиод (чтоб гасящий резистор не сильно грелся), при этом меандр 50Гц на ноге INT0 имел фронт порядка 200-250мкС.
При относительно нестабильном питании АВРа (5В +/-0,5В) наблюдались иногда двойные вызовы по фронту на INT0 (видимо при срабатывании INT0 и выходе из обработчика, при небольшоим провале по питанию, генерился повторный вызов.

Лечилось, просто (маскированием INT0 со сбросом флагов в GIFR на время нарастания фронта :)

Так что будьте внимательней с внешними прерываниями (да и с опросоим портов думаю тоже) при нестабильном питании.

Но до этого ж надо было допереть :))
Уф!
Теперь пора домой собираться.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание