[an error occurred while processing this directive]
|
//нинициализация перед разрешением прерывания.
tmp = PORTB //читаем порт В в переменную
//в самом прерывании
dat = PORTB // читаем порт и сохраняем значение, т.к. его состояние может измениться во время работы обработчика.
tmp = tmp XOR dat // узнаем какие биты изменились.
if((dat.7==1)AND(tmp.7==1)){count1++;} //если бит RB7 был изменен и равен 1, то счетчик увеличить
if((dat.6==1)AND(tmp.6==1)){count2++;} //если бит RB6 был изменен и равен 1, то счетчик увеличить
if((dat.5==1)AND(tmp.5==1)){count3++;} //если бит RB5 был изменен и равен 1, то счетчик увеличить
if((dat.4==1)AND(tmp.4==1)){count4++;} //если бит RB4 был изменен и равен 1, то счетчик увеличить
tmp = dat //сохраняем текущее состояния для последующего анализа.
Вот так сделаешь и все будет работать как надо.
Удачи.
E-mail: info@telesys.ru