Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ivan_fd 
Форум Picbasic.ru » Программирование МК » PicBasicPro » интерфейс отдоной кнопки
интерфейс отдоной кнопки
sa137 Дата: Пт, 13.07.2012, 15:30  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

цель - таймер для для засветки резиста/маски.
интерфейс 1 кнопка (замыкаем на землю). индикация рабочии UV леды.

короткое нажатие выбор времени из 3 предустановленных (с подтверждением текущих установок таймера миганием ледов)
длинное нажатие - отработка заданного времени.

вопрос - как проще всего реализовать определение длинного (скажем больше секунды) и короткого нажатия.

у меня была идея воспользоваться командой BUTTON использую значение автоповтора

main_loop:
b=0
button start,0,10,5,b,1,kpress
pause 200
goto main_loop

kpress:
if b < 50 then toggle LED_OUT ' короткое нажатие
IF b > 200 then toggle SLED_OUT ' длинное
return

но такая к-ция не работает. нужно допилить это или придумать другое.
ЯНДЕКС Дата: 13.07.2012
Matrix252005 Дата: Пт, 13.07.2012, 15:39  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 675
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!

sa137, а чем Вам это не подходит??? http://www.picbasic.ru/publ....1-0-123


THE TRUTH IS OUT THERE.

С уважением, Николай.
sa137 Дата: Пт, 13.07.2012, 16:58  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

да как бы предложенная вещь в РАЗЫ сложнее..
вот текущее состояние, исполнение, применение - http://impulsite.flybb.ru/viewtopic.php?p=9643#9643.

из доработок проситься светодиод статуса (а ля прогресс бар) для сверхдлинных выдержек - около часа.

теперь вернемся к кнопке.

может воспользоваться прерываниями.

прерывание по нажатию (приходу нуля).
в обработке прерывания прерывание перепрограммировать по отжатию. и запускать цикл/таймер.
по приходу прерывания отжатия смотреть цикл таймер и делать нужное...

но хочется сделать как можно проще..вот бы с этими баттансами разобраться, проще по моему не придумаешь..
Matrix252005 Дата: Пт, 13.07.2012, 17:14  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 675
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Quote (sa137)
вот бы с этими баттансами разобраться, проще по моему не придумаешь

Проще смотреть состояние порта!!!
Quote (sa137)
может воспользоваться прерываниями.

А это хорошее решение!!!


THE TRUTH IS OUT THERE.

С уважением, Николай.
sa137 Дата: Пт, 13.07.2012, 17:27  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

Quote (Matrix252005)
Проще смотреть состояние порта!!!


типа IF .. THEN ?
главная проблема тогда дребезг..
Matrix252005 Дата: Пт, 13.07.2012, 17:39  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 675
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Сколько работаю с кнопками, дребезга не замечал!!! Чтобы избежать дребезга, посадите параллельно кнопке емкость на 100Н, можно АЦП клаву использовать!!!
А по Вашему поводу, где то на форуме видел, человек предложил так (могу и ошибиться, видел давно и пишу по памяти, но смысл такой):
IF Button = 0 then
But = 1
....
Else
But = 0
Endif
DelayMs 1000

If but = 1 Then - условие...

Что то так...

Добавлено (13.07.2012, 17:36)
---------------------------------------------
Ошибся!!! После задержки, опять смотрите вход МК!!!

Добавлено (13.07.2012, 17:39)
---------------------------------------------
Можно сделать в условии цикл, скажем от 0 до n - где n - время которое Вас интересует, и в этом цикле отслеживать кнопку!!! Если она изменилась меньше чем за нужное время, идти в одно место программы, если прошло все время, тов другое...


THE TRUTH IS OUT THERE.

С уважением, Николай.
anatol Дата: Пт, 13.07.2012, 22:16  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 550
Репутация: 14   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Quote (sa137)
интерфейс отдоной кнопки


Ну название темы набрать со словарем можно?
Дурь, ей богу.
sa137 Дата: Пт, 13.07.2012, 22:42  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

Quote (anatol)
Ну название темы набрать со словарем можно?

очевидно что ошибся. но исправить сам не могу. модераторы поправьте на досуге.
ivan_fd Дата: Пт, 13.07.2012, 22:54  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Специалист
Сообщений: 899
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Уже было на сайте, вот смотрите пример.
Короткое нажатие включаем один светик, длинное другой.
Прикрепления: Button.zip(44Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
sa137 Дата: Сб, 14.07.2012, 16:45  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

Quote (ivan_fd)
вот смотрите пример.


премного благодарен.
это, то, что было нужно. спасибо.

Добавлено (14.07.2012, 16:45)
---------------------------------------------
кривее кода я еще не писал....

но в общем он работает.

Форум Picbasic.ru » Программирование МК » PicBasicPro » интерфейс отдоной кнопки
Страница 1 из 11
Поиск: