[an error occurred while processing this directive]
|
Может кому и пригодится, вот наткнулся на такую замечательную особенность триггеров шмидта в AVR.
На INT0 былоа повешено оптопара с подтягивающим резюком 10К, для контроля ZeroCross в сети. Оптопара работала в режиме малых токов через светодиод (чтоб гасящий резистор не сильно грелся), при этом меандр 50Гц на ноге INT0 имел фронт порядка 200-250мкС.
При относительно нестабильном питании АВРа (5В +/-0,5В) наблюдались иногда двойные вызовы по фронту на INT0 (видимо при срабатывании INT0 и выходе из обработчика, при небольшоим провале по питанию, генерился повторный вызов.
Лечилось, просто (маскированием INT0 со сбросом флагов в GIFR на время нарастания фронта :)
Так что будьте внимательней с внешними прерываниями (да и с опросоим портов думаю тоже) при нестабильном питании.
Но до этого ж надо было допереть :))
Уф!
Теперь пора домой собираться.