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

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

Отправлено DSN  15 февраля 2005 г. 23:13
В ответ на: ГЫ, всегда веселило когда в прерывания вставляют задержки ))) отправлено DSN  15 февраля 2005 г. 22:48

//нинициализация перед разрешением прерывания.
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: 

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru