Не знаю может тоже ЕРЕСЬ, но посмотрите и на такое решение.
тоже самое - событие отпускания и событие удержания кнопки.
сам код не есть ересь - если тебе так нужно, так и должно быть.
ересью являтеся утверждение, что возможно произвести что-то с кнопкой, предварительно её не нажав и не произвести отпускание в конце.
можно не использовать нажатие и блокировать отпускание - всё.
но... нет смысла вписывать все эти оригинальные танцы с бубном в библиотеку потому, что когда тебе понадобится всегда обрабатывать события отпускания кнопки, то тебя удивит странное поведение кнопки - нажал, подержал и не отжалось. О_О
Он хоть и велосипед, но сразу не поехал, пришлось разбираться и добавлять в скетч свои коменты, а то оно вроде и понятно для спецов, наверно, только у спецов уже скорее свой велосипед есть к которому они привыкли. А для любителей как я сходу ни чего не понятно.
Он хоть и велосипед, но сразу не поехал, пришлось разбираться и добавлять в скетч свои коменты, а то оно вроде и понятно для спецов, наверно, только у спецов уже скорее свой велосипед есть к которому они привыкли. А для любителей как я сходу ни чего не понятно.
исходниках комментов более, чем достаточно.
но, если я что-то упустил, то нужно сказать, что именно не понятно - я добавлю в вики или примеры.
Увожаемый Клапауцый во первых большое СПАСИБО за ваш труд! Ваш велосипед уже пару раз пригодился мне в моих проэктах.
Но в последнем проэкте возникли определённые сложности. А конкретнее это время реакции кнопок на одиночное нажатие.
Я прочитал ваши примеры и реадме но так и непонял как и какие переменные изменить для более стабильной и быстрой реакции кнопок на одиночное нажатие. Буду благодарен за помощ...
Использую в проэкте только одиночное нажатие. Вот пример:
void loop()
BUTTON_MENU.read();
BUTTON_SELECT.read();
if (BUTTON_MENU.click_down )
{
///действие
}
if (BUTTON_SELECT.click_down && menu == 0 )
{
///действие
}
if (BUTTON_SELECT.click_down && menu == 1 && titulmenu == 0 )
{
///действие
}
Но в последнем проэкте возникли определённые сложности. А конкретнее это время реакции кнопок на одиночное нажатие.
Я прочитал ваши примеры и реадме но так и непонял как и какие переменные изменить для более стабильной и быстрой реакции кнопок на одиночное нажатие. Буду благодарен за помощ...
ок. спроси меня ещё раз с полным* примером, демонстрирующим медленную и нестабильную реакцию кнопок на одиночное нажатие.
Ну, первое понятно - сделать несколько событий при отпускании кнопки по времени. Второе - при длительном удержании счет числа увеличивается сначала на один, потом на 5, потом на 10, ну и т.д. Бывает удобно. Да и гибкости твоей библиотеке добавилось бы. Мне 100 кнопок не нужно хватит 9. :))
Ну, первое понятно - сделать несколько событий при отпускании кнопки по времени. Второе - при длительном удержании счет числа увеличивается сначала на один, потом на 5, потом на 10, ну и т.д. Бывает удобно. Да и гибкости твоей библиотеке добавилось бы. Мне 100 кнопок не нужно хватит 9. :))
даже спорить уже скучно и что-то объяснять...
цирк с конями устраивайте сами - библиотека позволяет это делать и не ограничивает все ваши хотелки.
желается знать, когда было последнее действие с кнопкой - значения переменной start достаточно.
Возник неожиданный вопрос по test.event_inactivity_Dn(). Ща это событие работает так, сколько кнопок было нажато, столько раз оно и ответит. Мне кажется, в таком виде она бесполезна. Правильнее было бы если с работка происходила один раз по истечении времени duration_inactivity_Dn после последней нажатой кнопки. Или я чего-то неправильно понимаю.
Возник неожиданный вопрос по test.event_inactivity_Dn(). Ща это событие работает так, сколько кнопок было нажато, столько раз оно и ответит. Мне кажется, в таком виде она бесполезна. Правильнее было бы если с работка происходила один раз по истечении времени duration_inactivity_Dn после последней нажатой кнопки. Или я чего-то неправильно понимаю.
ок. давай посмотрим на самое простое.
допустим, у нас две кнопки, одна нажата, вторая отпущена - что должна вернуть test.state_soft() ?
Возник неожиданный вопрос по test.event_inactivity_Dn(). Ща это событие работает так, сколько кнопок было нажато, столько раз оно и ответит. Мне кажется, в таком виде она бесполезна. Правильнее было бы если с работка происходила один раз по истечении времени duration_inactivity_Dn после последней нажатой кнопки. Или я чего-то неправильно понимаю.
Вы именно концептуально не понимаете. Не может быть 100 отдельных солдат быть ротой, взводом, отделением. Они будут только 100 отдельных солдат. Вот так и с кнопками, точнее драйвером группы кнопок. Или у вас драйвер отдельной кнопки или у вас драйвер группы кнопок.
Вы именно концептуально не понимаете. Не может быть 100 отдельных солдат быть ротой, взводом, отделением. Они будут только 100 отдельных солдат. Вот так и с кнопками, точнее драйвером группы кнопок. Или у вас драйвер отдельной кнопки или у вас драйвер группы кнопок.
всё он правильно понимает - просто ему желается, что бы был цирк с конями Шредингера... там, где ему удобно - был, а где неудобно - не был.
тема ереси закрыта.
источник обнаружен.
<< ну, напиши мне это в примере, что бы я не орал, что это невозможно теоретически.
1
if
(короткое нажатие) digitalWrite(14, !digitalRead(14));
2
if
(длинное нажатие) digitalWrite(15, !digitalRead(15));
>>
Не знаю может тоже ЕРЕСЬ, но посмотрите и на такое решение. Здесь присутствует антидребезг и пины не 14, 15 а 10, 11 а так выполняет то что Вы заявили
Не знаю может тоже ЕРЕСЬ, но посмотрите и на такое решение.
тоже самое - событие отпускания и событие удержания кнопки.
мне по барабану - нажатие там или отпускание, главное делается то что мне нужно.
Полностью солидарен с vvadim !
Библиотека ClickButton выполняет то что мне нужно , а что она не обрабатывает мне по барабану.
Никаких сбоев в ее работе не наблюдал.
Засим откланиваюсь.
это какой-то цирк с конями. :D
https://github.com/Klapautsiy/titanium-bicycle-for-button/wiki
библиотека позволяет оперировать следующими переменными-производными логического состояния кнопки по времени:
[quote=Клапауций 112]
Спасибо за велосипед, хорошо идет!
Разобрался.
Он хоть и велосипед, но сразу не поехал, пришлось разбираться и добавлять в скетч свои коменты, а то оно вроде и понятно для спецов, наверно, только у спецов уже скорее свой велосипед есть к которому они привыкли. А для любителей как я сходу ни чего не понятно.
Он хоть и велосипед, но сразу не поехал, пришлось разбираться и добавлять в скетч свои коменты, а то оно вроде и понятно для спецов, наверно, только у спецов уже скорее свой велосипед есть к которому они привыкли. А для любителей как я сходу ни чего не понятно.
исходниках комментов более, чем достаточно.
но, если я что-то упустил, то нужно сказать, что именно не понятно - я добавлю в вики или примеры.
файл README.txt опять же.
Да все понятно когда разберешься.
Просто проверил каждый пример и подписал коменты под себя, вроде того что
- задаем время длительного удержания нажатой кнопки
- если нажать кнопку и удерживать длительно, то делаем......
файл README.txt
плюс примеры, плюс имена функций такие, что очень сложно не понять.
Увожаемый Клапауцый во первых большое СПАСИБО за ваш труд! Ваш велосипед уже пару раз пригодился мне в моих проэктах.
Но в последнем проэкте возникли определённые сложности. А конкретнее это время реакции кнопок на одиночное нажатие.
Я прочитал ваши примеры и реадме но так и непонял как и какие переменные изменить для более стабильной и быстрой реакции кнопок на одиночное нажатие. Буду благодарен за помощ...
Использую в проэкте только одиночное нажатие. Вот пример:
Но в последнем проэкте возникли определённые сложности. А конкретнее это время реакции кнопок на одиночное нажатие.
Я прочитал ваши примеры и реадме но так и непонял как и какие переменные изменить для более стабильной и быстрой реакции кнопок на одиночное нажатие. Буду благодарен за помощ...
ок. спроси меня ещё раз с полным* примером, демонстрирующим медленную и нестабильную реакцию кнопок на одиночное нажатие.
*полный пример - код, который компиллируется.
Я прочитал ваши примеры и реадме но так и непонял как...
ты прочитал примеры и файл описания и не увидел как?..
Я прочитал ваши примеры и реадме но так и непонял как...
ты прочитал примеры и файл описания и не увидел как?..
Это я видел. Пробовал убовлять и добавлять время. В основном пропорционально друк к другу. Но эффекта небыло.
Так значит это может быть чтото в моем коде так тормозит кнопки.
Ок сейчас выложу код .
Пробовал убовлять и добавлять время. В основном пропорционально друк к другу. Но эффекта небыло.
не пробовать нужно, а настраивать так, как тебе необходимо, а не пропорционально.
эффект настроек вступает в силу после вызова функции настроек.
Вот код. Перемещение по меню
Ардуина Мега + Дисплей 320*480 + китайская мембранная клавиатура из шести кнопок подключена без резисторов, опщий к массе центральные к пинам меги.
Вот код. Перемещение по меню
я просил код, демонстрирующий неполадки.
*ещё за запостишь простыню в 1200 строк и уйдёшь на йух.
в библиотеке титановый велосипед для кнопки. (v 7.0) нет такого файла.
Эт я просто переименовал чтоб с первой версией библиотеки неспутать.
я просил код, демонстрирующий неполадки.
Ну этот код точно дает неполадки ... )
Эт я просто переименовал чтоб с первой версией библиотеки неспутать.
ок. пиши демо неполадок для последней версии библиотеки.
*со светодиодиком, например - нажатием включаем/выключаем. digitalWrite(13, !digitalRead(13)); и оно у тебя нестабильно.
Эт я просто переименовал чтоб с первой версией библиотеки неспутать.
ок. пиши демо неполадок для последней версии библиотеки.
*со светодиодиком, например - нажатием включаем/выключаем. digitalWrite(13, !digitalRead(13)); и оно у тебя нестабильно.
Хммм... Со светодиодиком говориш. А это мысль щас попробую...
мембранная клавиатура из шести кнопок подключена без резисторов, опщий к массе центральные к пинам меги.
и, электрическую схему подключения кнопок вдогонку рисуй - мне словесное описание непонятно.
если тяжело нарисовать, то просто скажи - подключено так, но без резисторов
https://github.com/Klapautsiy/titanium-bicycle-for-button/wiki
Спасибо дружище. Ты был прав! Убрал из кода все ифы и свичи. Оставил только те что обрабатывали нажатие кнопок. И добавил вывод в сериал.
И вот все тормоза как рукой сняло. Велосипед отрабатывает просто идеально!!!!
А с кодом моим беда какаято. Блин чтож он так кнопки притормаживает. Неужели изза того что слишком длинный??? :/
Блин чтож он так кнопки притормаживает. Неужели изза того что слишком длинный??? :/
не из-за того, что длинный, а из-за того, что медленный.
*создавай отдельную тему и спрашивай там народ. с комментом, что велоусипед неувиноват.
пока повозки, гружёные кодом пересекали маковые плантации, написал тебе проверочное - внезапно у тебя как-то не так:
Всем желаю здравия.
Клапауций 999 решил поюзать твой велосипед, нужно сделать на одной кнопке 4 разных события:
1. Короткое нажатие
2. двойное нажатие
3. длинное нажатие
4. и ооочень длинное нажатие
Если с первыми тремя без вопросов, то с четвертым - как-то сразу и не врублюсь, как сделать, если ещё учесть, что кнопок 9.
переменные
библиотека позволяет оперировать следующими переменными-производными логического состояния кнопки по времени:
https://github.com/Klapautsiy/titanium-bicycle-for-button/wiki
это базовые сущности, которые генерит кнопка и с которыми библиотека позволяет комфортно работать.
персональный цирк с конями будете строить сами #468
Сразу цирк с канями :)
Все же просто решается, надо в Click.h добавить time_button = stop - start; по последнему событию.
И вывести её "на гара". Просто вам это проще было - бы встроить, вы библиотеку писали. Ну да ладно сам разберусь как там у вас из нутри.
И ни каких танцев с бубнами.
Сразу цирк с канями :)
Все же просто решается, надо в Click.h добавить time_button = stop - start; по последнему событию.
И вывести её "на гара". Просто вам это проще было - бы встроить, вы библиотеку писали. Ну да ладно сам разберусь как там у вас из нутри.
И ни каких танцев с бубнами.
я думал об этой переменной, но так и не придумал практического ея применения.
если ты мне объяснишь, что такого полезного можно делать этой переменной, то я ея добавлю в библиотеку.
плюс вывод "на гора" этой переменной будет стоить 4 байта на каждый экземпляр класса - при 100 кнопках, как-то не то.
Ну, первое понятно - сделать несколько событий при отпускании кнопки по времени. Второе - при длительном удержании счет числа увеличивается сначала на один, потом на 5, потом на 10, ну и т.д. Бывает удобно. Да и гибкости твоей библиотеке добавилось бы. Мне 100 кнопок не нужно хватит 9. :))
Ну, первое понятно - сделать несколько событий при отпускании кнопки по времени. Второе - при длительном удержании счет числа увеличивается сначала на один, потом на 5, потом на 10, ну и т.д. Бывает удобно. Да и гибкости твоей библиотеке добавилось бы. Мне 100 кнопок не нужно хватит 9. :))
даже спорить уже скучно и что-то объяснять...
цирк с конями устраивайте сами - библиотека позволяет это делать и не ограничивает все ваши хотелки.
желается знать, когда было последнее действие с кнопкой - значения переменной start достаточно.
Согласен можно и так. А "на гара" start увидеть можно?
Согласен можно и так. А "на гара" start увидеть можно?
для примера https://github.com/Klapautsiy/titanium-bicycle-for-button/blob/BUTTON-v7.1/examples/Button/Button.ino будет звучать так test.button[0].start для первой кнопки.
¯\_(ツ)_/¯
Вот именно так сижу и пробую
и почемуто пока только "0" получаю
и почемуто пока только "0" получаю
не знаю - лечи свой сериал. в индикатор всё красиво отображается
ну, и? как там переменная start поживает? - я уже волнуюсь... сильно.
Спасибо хорошо :) что с неё станеца. На работе медленный комп стал получать всегда четверки и понял свою ошибку.
Спасибо шорошая фитча буду юзать и дальше.
Вот так работает
Возник неожиданный вопрос по test.event_inactivity_Dn(). Ща это событие работает так, сколько кнопок было нажато, столько раз оно и ответит. Мне кажется, в таком виде она бесполезна. Правильнее было бы если с работка происходила один раз по истечении времени duration_inactivity_Dn после последней нажатой кнопки. Или я чего-то неправильно понимаю.
Возник неожиданный вопрос по test.event_inactivity_Dn(). Ща это событие работает так, сколько кнопок было нажато, столько раз оно и ответит. Мне кажется, в таком виде она бесполезна. Правильнее было бы если с работка происходила один раз по истечении времени duration_inactivity_Dn после последней нажатой кнопки. Или я чего-то неправильно понимаю.
ок. давай посмотрим на самое простое.
допустим, у нас две кнопки, одна нажата, вторая отпущена - что должна вернуть test.state_soft() ?
Вы именно концептуально не понимаете. Не может быть 100 отдельных солдат быть ротой, взводом, отделением. Они будут только 100 отдельных солдат. Вот так и с кнопками, точнее драйвером группы кнопок. Или у вас драйвер отдельной кнопки или у вас драйвер группы кнопок.
всё он правильно понимает - просто ему желается, что бы был цирк с конями Шредингера... там, где ему удобно - был, а где неудобно - не был.
Блин все такие умные, ну обьесните мне, где я это магу использовать.
Блин все такие умные, ну обьесните мне, где я это магу использовать.
начинается... никогда такого не было, и вот - опять.
эти функции получились случайно - мне нужна была функция неативности клавы... остальное пошло прицепом.
что хочешь, то и делай. или не делай. никто не принуждает.
Блин все такие умные, ну обьесните мне, где я это магу использовать.
Ваши кони , вам их и использовать. У меня своих табунов хватает.