Мигание ЛЭД
|
|
Anatoliy1000 |
Дата: Ср, 06.07.2016, 04:55 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
31
Замечания:
±
На сайте с 02.03.2016
Статус:
Offline
|
Здравствуйте! Ранее вопрос задавал в разделе "помогите новичку", но ответов не было. Да простит модератор - выношу отдельным вопросом.
1. Задаю 3 портам №№ 0,1 и 4 выход и ставлю на них логическую 1. 2. Подвешиваю на них 3 ЛЭДки (разных цветов). Это четырехногая ЛЭД и общим анодом (+). 3. Ставлю условие, что при замыкании кнопки на порту №3 мигание красной ЛЭД (порт1), при размыкании зеленой (порт4). Обратите внимание, что порт №0 (голубой цвет) вообще не трогаю. Результат: Автоматически загорается голубой цвет. Хотя в начале гасил и его не трогал. А красный автоматом становится всегда включенным при мигании зеленого. Опытным путем установлено, что при исключении из программы зеленой или красной мигалки, синий включается при включении оставшегося цвета. В чем проблема?
Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
|
|
|
|
ivan_fd |
Дата: Ср, 06.07.2016, 08:58 | Сообщение # 2 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Код не смотрел, но если это не работает в протеусе, то резисторы нужно поставить на светодиоды, или сделать их цифровым примитивом.
P.S: да и забудьте Вы про эти программные прерывания!!!!! Вообще не понимаю нафиг их придумали разработчики.
Сообщение отредактировал
ivan_fd - Ср, 06.07.2016, 09:01
|
|
|
|
xvovanx |
Дата: Ср, 06.07.2016, 09:02 | Сообщение # 3 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
328
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Ну вы и накрутили - операторы "Select , Case", да паузы в прерываниях и программа так запутана, что я не разобрал "кто кем" мигает и с какой паузой. Напишите программу проще и понятней для самого себя и другим, используя простые команды и операторы, типа:
If мишень=0 Then GreenLED=High: RedLED=Low Else 'мишень=1 GreenLED=Low: RedLED=High EndIf
и все паузы в основную программу.
Да и вообще прерывания в вашей программе не нужны. Зациклить программу с опросом состояния мишени и все.
Сообщение отредактировал
xvovanx - Ср, 06.07.2016, 09:05
|
|
|
|
Anatoliy1000 |
Дата: Ср, 06.07.2016, 09:35 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
31
Замечания:
±
На сайте с 02.03.2016
Статус:
Offline
|
Цитата xvovanx ( ) Да и вообще прерывания в вашей программе не нужны. 1.Там у меня счетчик времени. Как его по другому сделать? Там просто считать вроде легче время стояния-падения мишени.
2.Кто как делает счетчик времени?
3.А по программе решил поставить транзисторы и все работает (в протеусе). Просто не хотел доп.пайки и вложений.
4.Интересно еще,то что в указанном прерывании через определенный промежуток времени порт для мигания лампочки меняет состояние с + на -. Получаем мигание. При использовании команд: А) Toggle Port.Bit Б) PulsOut Pin , Period, {Initial State} подается сигнал 1 раз, потом стопор. В протеусе показывает, что нога становится серым цветом, т.е. как я понимаю ТРИС = 1 состояние неопределенности.
Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал
Anatoliy1000 - Ср, 06.07.2016, 10:02
|
|
|
|
ivan_fd |
Дата: Ср, 06.07.2016, 10:04 | Сообщение # 5 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Цитата Anatoliy1000 ( ) А по программе решил поставить транзисторы и все работает (в протеусе). Просто не хотел доп.пайки и вложений.
Для протеуса я Вам написал, что достаточно было сделать так:
Сообщение отредактировал
ivan_fd - Ср, 06.07.2016, 10:11
|
|
|
|
ivan_fd |
Дата: Ср, 06.07.2016, 10:18 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
А вот в железе обязательно поставить резисторы! Ну разве, что это куча светодиодов, тогда да, нужны транзисторы.
|
|
|
|
xvovanx |
Дата: Чт, 07.07.2016, 08:56 | Сообщение # 7 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
328
Замечания:
±
На сайте с 02.05.2013
Статус:
Offline
|
Цитата Anatoliy1000 ( ) ...Кто как делает счетчик времени?... я в основном использую таймер 1 в прерывании
|
|
|
|