реклама на сайте
подробности

 
 
> Вопрос по прерываниям.
ps1x
сообщение Mar 19 2006, 14:07
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 300
Регистрация: 15-03-06
Из: Москва
Пользователь №: 15 284



Как реализовать одновременную работу индикатора (16 светодиодов для отображения времени в двоичном виде, т.е. 6 диодов на секунды, 6 на минуты и 4 на часы), кнопок и собствено подсчет времени. При этом я не втыкаю как управлять ключами на транзисторах. На сколько я понял -
нужно сделать прерывание по таймеру(быстрому, чтобы не было мерцания) и в прерывании включить первые 6 диодов, а затем вторые, т.е. если допустим светодиоды подключены к порту B а ключи к ногам 0 и 1 порта C то:

interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
PORTC.0=1;//включаем первые 6 диодов (секунды)
PORTB=sec;//собсно записываем на выход значение секунд.
delay_ms(100);//ждем чтобы они немного посветили
PORTC.0=0;//выключаем первые 6 диодов (секунды)
PORTC.1=1;//включаем вторые 6 диодов (минуты)
PORTB=min;//собсно записываем на выход значение минут.
delay_ms(100);//ждем чтобы они немного посветили
PORTC.1=0;//выключаем вторые 6 диодов (минуты)
}

- но в протеусе это не работает (((

а еще одно прерывание, делаем для подсчета времени, прерывание выполняется каждую секунду.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01317 секунд с 7
ELECTRONIX ©2004-2016