Народ, проблемы с прерыванием по входу INT!
Вроде бы всё правильно делаю -
RB0 - вход, прерывание по заднему фронту, прерывание по INT разрешено, глобальные прерывание
разрешены, порт В прочитал (на всякий случай), флаг сбросил... И не чего.
Может быть какие тонкости есть?
Не входит совсем.
Прерывание поочерёдно осуществляется по заднему и по переднему фронту сигнала, при этом, для
контроля вывожу на RD7, различные уровни. Между прерываниями программа выдаёт меандр на RD6.
Меандр на RD6 есть, а на RD7 ничего. На вход INT поступают импульсы длительнростью 10мС,
частотой 50Гц. Другие прерывания заблокированы.
Была подобная проблема с 16Ф873А. Устанавливал разрешение прерываний сразу записью байта и...
прерывание неработает. Установил разрешение глобальных прерываний установкой бита и
перефирийных модулей отдельно установкой бита и... все ОК!
Спасибо за совет, Алекс!
В самом деле устанавливаю разрешение записью байта. Надо попробовать побитно.
Есть ещё проблема. Три контроллера pic16f877a, от разных поставщиков, одинаково не правильно
распознаются отладчиком MPLAB-ICD. Он распознаёт их как pic16f870 и предлагает внести изменения
в проект.
если и это не поможет, то обратите внимание на следующее - если читать порт, то читается ТТЛ
уровень, а прерывание генерируется через триггер Шмитта, поэтому возможно при напряжении меньше
0,4 питания что читается единица, а прерывания нет.