![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| goodking |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
Привет!
хочу связать кнопку со светодиодом (то есть при первом нажатии кнопки диод мигает, при повторном- гаснет) подскажите пожалуйста, как это лучше сделать! Вот как у меня получилось (LED-диод; P3-кнопка)
почему-то при запуске программы LED всегда =1 , при нажатии кнопки- начинает мигать, и сразу же перестает мигать, когда отпускаю (просто продолжает гореть) |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Что написали, то и получили
Во первых надо сделать нормальный опрос кнопки (с подавлением дребезга и определением момента именно нажатия) Во вторых надо сделать bool переменную, которая меняла бы свое состояние по каждому НАЖАТИЮ кнопки В третьих поставить ее (переменную) вместо if (P3==0x7f) в таймерное прерывание В четвертых сделать в нем (прерывании) ветку else для условия из п3, в которой прописать LED=0 |
|||
|
||||
| goodking |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
А как произвести НОРМАЛЬНЫЙ опрос кнопки? |
|||
|
||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
Попробуй так. -------------------- Мне нужны помощники. |
|||
|
||||
| goodking |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
Мигает, только пока удерживаю кнопку, отпускаю-сразу гаснет |
||||
|
|||||
| Den64 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 210 Регистрация: 6.4.2006 Где: Курск Репутация: 1 Всего: 2 |
А если без таймера, попроще.. Правда будет дребезг..
--------------------
Инагда пишу звуками. |
|||
|
||||
| xvr |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Нормальный - это с подавлением дребезга. Т.е. состояние кнопки периодически опрашивается и при его изменении делается пауза в опросе, что бы дребезг завершился. Хотя, если взять цикл опроса длиннее, чем время дребезга (где то 100ms), то дребезг до следующего опроса завершится.
|
||||||
|
|||||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
извини, не прочитал задание, вот так нужно. -------------------- Мне нужны помощники. |
|||
|
||||
| goodking |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
А от какого таймера ставить выше приоритет прерывания? И зачем выделять бит в P3 (P3&0x80)?? Добавлено @ 09:49
Теперь мигает все время, а когда нажимаю-перестает! Это сообщение отредактировал(а) goodking - 16.10.2009, 10:06 |
||||||||||||
|
|||||||||||||
| goodking |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
То-есть в while прописать? |
|||
|
||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
извини друг, исправляюсь. -------------------- Мне нужны помощники. |
|||
|
||||
| goodking |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
Та я так уже пробовал, мигнет только раз в сам момент нажатия и гаснет |
||||
|
|||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
По идее того, который тикает чаще. Практически все равно.
|
||||
|
|||||
| goodking |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
Неа Добавлено через 3 минуты и 57 секунд
Вообще как-то хаотически мигает...вот код:
|
||||||||||||
|
|||||||||||||
| xvr |
|
||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Что, на 3х битах сразу?
|
||||||||||
|
|||||||||||
| goodking |
|
||||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
Это сообщение отредактировал(а) goodking - 16.10.2009, 13:49 |
||||||||||||
|
|||||||||||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
Или напиши
|
||||
|
|||||
| goodking |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
|
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 8 Всего: 223 |
На 7м (если считать с 0) - то это и будут оригинальные 0x80
|
|||
|
||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
попробуй последний мною предложенный вариант, должно заработать.
-------------------- Мне нужны помощники. |
|||
|
||||
| goodking |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 15.10.2009 Репутация: нет Всего: нет |
А, точно Добавлено @ 16:31
Та пробовал, мигает только В МОМЕНТ нажатия, дальше гаснет даже при удерживаемой кнопке [ Это сообщение отредактировал(а) goodking - 16.10.2009, 16:32 |
||||||
|
|||||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |