класс титановый велосипед для тактовой кнопки.

Dmti
Dmti аватар
Offline
Зарегистрирован: 13.10.2013

Клапауций 089 пишет:

RoN пишет:

Как насчет того чтобы по теме поговорить?

кто-то из читатателй этой темы в курсе, шо оно от меня хочет?

Он же тебе задание в виде алгоритма выдал возьми и напиши за него прогромулину. :)) Ну и тормазиш же ты.

RoN
Offline
Зарегистрирован: 28.12.2017

RoN пишет:

Задал вопрос, потребуется ли мне переменная типа boolean в приведенном ниже коде, указал условия включения кнопки. Если да то как правильно все это сделать в коде?

Клапауций 089 пишет:

if (test.state_button       () == 1) {
// код выполняется неограниченное количество раз пока кнопка нажата
}

if (test.event_click_Dn     () == 1) {
// код выполняется один раз при нажатии кнопки
}

Далее мне ответили так:

Клапауций 089 пишет:

нужно опубликовать алгоритм твоей хотелки, что бы я понял, что тебе нужно и смог тебе помочь и

избегать формулировок, допускающих неоднозначную трактовку

Я скинул алгоритм хотелки

RoN пишет:

Алгоритм: https://yadi.sk/d/GYsS44Zo3RUwjp

Потом мне неожиданно предложили пойти на Север и это мне непонятно

Клапауций 089
Клапауций 089 аватар
Offline
Зарегистрирован: 14.01.2018

RoN пишет:

Я скинул алгоритм хотелки

а, я тебя что просил сделать?

ты - идиот?

RoN
Offline
Зарегистрирован: 28.12.2017

Давайте без хамства. Тогда объясните мне, еще раз, то что вы имели ввиду, если не трудно конечно?

Клапауций 089 пишет:

RoN пишет:

Я скинул алгоритм хотелки

а, я тебя что просил сделать?

ты - идиот?

Клапауций 089
Клапауций 089 аватар
Offline
Зарегистрирован: 14.01.2018

RoN пишет:

Тогда объясните мне что вы имели ввиду если не трудно конечно?

а, смысл?

я не первое десятилетие общаюсь с людьми твоего склада характера.
говоришь ему:"принеси квадратное" - приносит круглое.
повторяешь попытку - снова не то.
возможно, это можно исправить - пусть психиатры разбираются с этой патологией.
RoN
Offline
Зарегистрирован: 28.12.2017

Клапауций 089 пишет:

а, смысл?

Я понимаю то что вам все равно сделаю ли я эту самую хотелку или нет, но раз уж сказали что можете помочь ... Я не понимаю зачем после этого идете на попятную...?

Да, я видимо не понял вас и то о чем вы пытались сказать. В чем проблема сказать тоже самое иначе?

 

Клапауций 089
Клапауций 089 аватар
Offline
Зарегистрирован: 14.01.2018

RoN пишет:

Я не понимаю зачем после этого идете на попятную...?

у тебя было две попытки - после ты начал шантажировать меня уходом всех таких, как ты, уходом на Север.
я согласился - идите.
собирай всех своих и - идите...

 

RoN
Offline
Зарегистрирован: 28.12.2017

Да не против я, если честно, там довольно неплохо сейчас зарабатывают.

Уже ради интереса спарашиваю ответьте что надо было сделать, фиг с ним с помощью сам доделаю. Это все из-за того что не опубликовал как хотели вы, в этом дело?

Клапауций 089 пишет:

у тебя было две попытки - после ты начал шантажировать меня уходом всех таких, как ты, уходом на Север.
я согласился - идите.
собирай всех своих и - идите...

Клапауций 089
Клапауций 089 аватар
Offline
Зарегистрирован: 14.01.2018

RoN пишет:

Это все из-за того что не опубликовал как хотели вы, в этом дело?

это всё из-за того, что ты извратился превратить диалог в поле с граблями, по которому я отказался ходить.

RoN
Offline
Зарегистрирован: 28.12.2017

Понял, отстаю от вас. Всего вам хорошего!

Ну и кстати, спасибо за помощь

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

не могли бы вы подсказать, как реализовать на одной кнопке 3 вида нажатия.... короткое, длинное и дабл клик, с длинным и коротким понятно, а вот с дабл кликом никак не разбирусь.... все равно проскакивает короткое нажатие, заранее спасибо

Гриша
Offline
Зарегистрирован: 27.04.2014

Xumuk пишет:

не могли бы вы подсказать, как реализовать на одной кнопке 3 вида нажатия.... короткое, длинное и дабл клик, с длинным и коротким понятно, а вот с дабл кликом никак не разбирусь.... все равно проскакивает короткое нажатие, заранее спасибо

ответ был дан ранее в посте 100

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Xumuk пишет:

с дабл кликом никак не разбирусь.... все равно проскакивает короткое нажатие

Так и и должно быть. Если это вызывает проблему, значит Ваша система неправильно спроектирована.

Посмотрите на дабл-клик в Windows. Одиночный клик "выбирает" файл, а дабл-клик - запускает выбранный на момент обнаружения дабл-клика файл. Т.е. то, что одиночный кил фиксируется никак не мешает работе дабл клика, а наоборот - помогает.

Вот так и Вы спроектируйте программу. чтобы он не мешал. Вот и всё. Все и всегда так делают.

Если делать их (одиночный и двойной клики) абсолютно независимыми, то одиночный клик будет жутко тормозить, т.к. прежде чем "зафиксироваться" ему надо подождать, а не поступит ли второй клик и не получится ли "дабл".

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ЕвгенийП пишет:

Xumuk пишет:

с дабл кликом никак не разбирусь.... все равно проскакивает короткое нажатие

Так и и должно быть. Если это вызывает проблему, значит Ваша система неправильно спроектирована.

Посмотрите на дабл-клик в Windows. Одиночный клик "выбирает" файл, а дабл-клик - запускает выбранный на момент обнаружения дабл-клика файл. Т.е. то, что одиночный кил фиксируется никак не мешает работе дабл клика, а наоборот - помогает.

Вот так и Вы спроектируйте программу. чтобы он не мешал. Вот и всё. Все и всегда так делают.

Если делать их (одиночный и двойной клики) абсолютно независимыми, то одиночный клик будет жутко тормозить, т.к. прежде чем "зафиксироваться" ему надо подождать, а не поступит ли второй клик и не получится ли "дабл".

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

мне надо сделать чтобы по коротким нажатиям листалось меню например menu++, дабл кликом включалась подсветка, а длинным нажатием выключался прибор

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Xumuk пишет:

мне надо сделать чтобы по коротким нажатиям листалось меню например menu++, дабл кликом включалась подсветка, а длинным нажатием выключался прибор

Так не делается. Перечитайте то, что я написал внимательно. Пример с Windows разберите до понимания. так как Вы написали не делается - это неправильное проектирование программы и любая реализация такой хотелки обречена на косяки и костыли, ну или раздражающие тормоза.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ЕвгенийП пишет:

Xumuk пишет:

мне надо сделать чтобы по коротким нажатиям листалось меню например menu++, дабл кликом включалась подсветка, а длинным нажатием выключался прибор

Так не делается. Перечитайте то, что я написал внимательно. Пример с Windows разберите до понимания. так как Вы написали не делается - это неправильное проектирование программы и любая реализация такой хотелки обречена на косяки и костыли, ну или раздражающие тормоза.

тоесть с помощью велосипеда нельзя сделать 3 функции на одной кнопке, понял спасибо.

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Xumuk пишет:

тоесть с помощью велосипеда нельзя сделать 3 функции на одной кнопке, понял спасибо.

Ни хрена Вы не поняли.

Не "с помощью велосипеда" а просто по жизни так не делается "ни с помощью чего".

Функция дабл-клика должна быть такой, чтобы короткий одиночный клик фиксировался, но не мешал ей (как в Виндовсе).

Это вопрос не велосипеда и не программирования - это вопрос проектирования системы - распределения функций. Вы должны так продумать функции.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ЕвгенийП пишет:

Xumuk пишет:

тоесть с помощью велосипеда нельзя сделать 3 функции на одной кнопке, понял спасибо.

Ни хрена Вы не поняли.

Не "с помощью велосипеда" а просто по жизни так не делается "ни с помощью чего".

Функция дабл-клика должна быть такой, чтобы короткий одиночный клик фиксировался, но не мешал ей (как в Виндовсе).

Это вопрос не велосипеда и не программирования - это вопрос проектирования системы - распределения функций. Вы должны так продумать функции.

к сожалению я пока не могу так построить программу(воображалка слабая пока в этом направлении)) ), будем дальше искать

Гриша
Offline
Зарегистрирован: 27.04.2014

ЕвгенийП пишет:

Ни хрена Вы не поняли.

Не "с помощью велосипеда" а просто по жизни так не делается "ни с помощью чего".

сколько мониторю этот топик, 3 раза точно помню этот же вопрос... у многих абсолютно отсутствует логическое мышление и понимание причинно-следственных связей. ИМХО в посте 100 от ТС более понятное объяснение... 

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Гриша пишет:

ЕвгенийП пишет:

Ни хрена Вы не поняли.

Не "с помощью велосипеда" а просто по жизни так не делается "ни с помощью чего".

сколько мониторю этот топик, 3 раза точно помню этот же вопрос... у многих абсолютно отсутствует логическое мышление и понимание причинно-следственных связей. ИМХО в посте 100 от ТС более понятное объяснение... 

я думаю если бы были элементарные примеры.... после стольких вопросов.... думаю люди бы их меньше задавали, к сожалению не все имеют склад ума и логику как у программиста... или нужно время, чтобы эту логику развить или научиться применять 

Гриша
Offline
Зарегистрирован: 27.04.2014

Xumuk пишет:

я думаю если бы были элементарные примеры.... после стольких вопросов....

ЕвгенийП пишет:

Не "с помощью велосипеда" а просто по жизни так не делается "ни с помощью чего".

и какой пример Вам необходим??????? тут фантастов маловато....

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Гриша пишет:

Xumuk пишет:

я думаю если бы были элементарные примеры.... после стольких вопросов....

ЕвгенийП пишет:

Не "с помощью велосипеда" а просто по жизни так не делается "ни с помощью чего".

и какой пример Вам необходим??????? тут фантастов маловато....

совместное использование короткого клика и даблклика, чтобы одно другому не мешало

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Xumuk пишет:

совместное использование короткого клика и даблклика, чтобы одно другому не мешало

Ну я же Вам приводил!!!

Просто запустите "Проводник". Кликните на файл один раз и кликните на него же дабл - кликом. Потом внимательно перечитайте мой пост #621, а после этого ещё раз покликайте на файлы.

Если непонятки останутся ... ну, попробуйте их сформулировать.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ЕвгенийП пишет:

Xumuk пишет:

совместное использование короткого клика и даблклика, чтобы одно другому не мешало

Ну я же Вам приводил!!!

Просто запустите "Проводник". Кликните на файл один раз и кликните на него же дабл - кликом. Потом внимательно перечитайте мой пост #621, а после этого ещё раз покликайте на файлы.

Если непонятки останутся ... ну, попробуйте их сформулировать.

я имел ввиду кусок кода с элементарным светодиодом хотябы... а не про виндовс.... ладно спасибо хоть на этом

kalapanga
Offline
Зарегистрирован: 23.10.2016

Xumuk пишет:

я думаю если бы были элементарные примеры.... после стольких вопросов.... думаю люди бы их меньше задавали, к сожалению не все имеют склад ума и логику как у программиста... или нужно время, чтобы эту логику развить или научиться применять 

Вы чудной человек! Вот не знаю я как эти дабл-клики реализовывать, не нужно было ни разу. Набрал в гугле "arduino double click". Первая же ссылка идёт на forum.arduino.cc и там пример такого кода. Пробуйте, работает или нет, разбирайтесь в устройстве на здоровье. И не единственная ведь ссылка-то!

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

kalapanga пишет:

Xumuk пишет:

я думаю если бы были элементарные примеры.... после стольких вопросов.... думаю люди бы их меньше задавали, к сожалению не все имеют склад ума и логику как у программиста... или нужно время, чтобы эту логику развить или научиться применять 

Вы чудной человек! Вот не знаю я как эти дабл-клики реализовывать, не нужно было ни разу. Набрал в гугле "arduino double click". Первая же ссылка идёт на forum.arduino.cc и там пример такого кода. Пробуйте, работает или нет, разбирайтесь в устройстве на здоровье. И не единственная ведь ссылка-то!

спасибо, нашел пример с библиотекой oneButton. просто у меня устройство, короткое нажатие переключает режимы, длинное включает выключает устройство а дабл клик включает фонарик

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Xumuk пишет:

я имел ввиду кусок кода с элементарным светодиодом хотябы... а не про виндовс.... ладно спасибо хоть на этом

Да причём тут код? Я всё пытаюсь до Вас донести, что проблема у Вас не в коде, а в общеинженерных вещах. Такие функции, как Вы хотите на клик и дабл клик навесить просто нельзя - ну, никак. Чтобы можно было использовать и клик и дабл клик, сами функции на них должны быть "совместимы" и пример такой совместимости - как раз в windows.  Разберитесь с ним.

Просто для начала забудьте про код  и придумайте такое распределение функций, чтобы они не мешали друг другу, а потом сделаете их любым кодом - тем же велосипедом.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ЕвгенийП пишет:

Xumuk пишет:

я имел ввиду кусок кода с элементарным светодиодом хотябы... а не про виндовс.... ладно спасибо хоть на этом

Да причём тут код? Я всё пытаюсь до Вас донести, что проблема у Вас не в коде, а в общеинженерных вещах. Такие функции, как Вы хотите на клик и дабл клик навесить просто нельзя - ну, никак. Чтобы можно было использовать и клик и дабл клик, сами функции на них должны быть "совместимы" и пример такой совместимости - как раз в windows.  Разберитесь с ним.

Просто для начала забудьте про код  и придумайте такое распределение функций, чтобы они не мешали друг другу, а потом сделаете их любым кодом - тем же велосипедом.

библиотека one button делает это https://www.youtube.com/watch?v=TwM1sp2IXYI

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Ну, похоже, Вы так ничего и не поняли. Делает, значит делает - пользуйтесь.

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

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

ЕвгенийП пишет:

Ну, похоже, Вы так ничего и не поняли. Делает, значит делает - пользуйтесь.

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

мне в жанной моей задаче не нужно сверх скоростей, и делаю я это ради всего лишь, чтобы сэкономить место, чтобы не делать супермегаогромный корпус

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

вы были правы она тормозит даже простейшую программу, но мы не сдаемся будем копать дальше

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

Удачи!

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

Xumuk пишет:

тоесть с помощью велосипеда нельзя сделать 3 функции на одной кнопке, понял спасибо.

какой-то 2-х функциональный велосипед - функции друг-другу мешают. О_О

Xumuk пишет:

библиотека one button делает это https://www.youtube.com/watch?v=TwM1sp2IXYI

ура!

Xumuk пишет:

вы были правы она тормозит даже простейшую программу, но мы не сдаемся будем копать дальше

расходимся - нас нае... нет! не расходимся - крафтим дальше. О_О

================

*зрасте всем, а кто в курсе - как он длинным нажатием включает выключенное устройство?

Xumuk пишет:

просто у меня устройство, короткое нажатие переключает режимы, длинное включает выключает устройство а дабл клик включает фонарик

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Клапауций 298 пишет:

Xumuk пишет:

тоесть с помощью велосипеда нельзя сделать 3 функции на одной кнопке, понял спасибо.

какой-то 2-х функциональный велосипед - функции друг-другу мешают. О_О

Xumuk пишет:

библиотека one button делает это https://www.youtube.com/watch?v=TwM1sp2IXYI

ура!

Xumuk пишет:

вы были правы она тормозит даже простейшую программу, но мы не сдаемся будем копать дальше

расходимся - нас нае... нет! не расходимся - крафтим дальше. О_О

================

*зрасте всем, а кто в курсе - как он длинным нажатием включает выключенное устройство?

Xumuk пишет:

просто у меня устройство, короткое нажатие переключает режимы, длинное включает выключает устройство а дабл клик включает фонарик

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

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

как вариант алгоритма однокнопочного интерфейса с тремя и более функциями:

лаг разбора полётов не может быть менее, чем время обработки самой продолжительной из обрабатываемых функций - в конкретном случае это - дабл клик (~200 миллисекунд)

работает следующим образом - запоминаются события короткого нажатия и дабл клика, по истечении времени неактивности кнопки равной duration_check, получаем результат.

т.е. сделали короткое нажатие - подождали результата. сделали дабл клик - подождали результата. 
!!!это я написал тому, кто собрался долбить кнопку чаще 200 миллисекунд и будет потом орать, что у него опять всё тормозит и он в третий раз уходит крафтить новые библиотеки...
где-то я уже это слышал, но они же всем табуном тогда ушли на Север. О_О

#include <Button.h>

Button test;

void setup() {

pinMode( 4, OUTPUT); // LED_01
pinMode( 5, OUTPUT); // LED_02
pinMode(17, OUTPUT); // LED_03

test.NO(); // N.O. Normal Open

test.pullUp();

test.duration_bounce       (  50);
unsigned long duration_check = 200;
test.duration_click_Db     (duration_check);
test.duration_inactivity_Up(duration_check);
test.duration_press        ( 500);

test.button(18); // arduino pins connected to button

}

boolean tmp_event_press_short = 0;
boolean tmp_event_click_Db    = 0;

void loop() {
test.read();

if (test.event_click_Db     (0) == 1) tmp_event_click_Db    = 1; // запомнить событие до разбора полётов

if (test.event_press_short  (0) == 1) tmp_event_press_short = 1; // запомнить событие до разбора полётов

// не уверен, что не нужно запоминать событие - у кого-то и длинные нажатия могут конфликтовать с дабл кликом О_О
if (test.event_press_long   (0) == 1) digitalWrite(17, !digitalRead(17));

if (test.event_inactivity_Up(0) == 1) { // разбор полётов event_click_Db&event_press_short, event_click_Db - приоритет

if (tmp_event_click_Db          == 1) { // обработать двойной клик, короткое нажатие отменить
tmp_event_press_short = 0; // сброс временного значения события
tmp_event_click_Db    = 0; // сброс временного значения события
digitalWrite( 4, !digitalRead( 4));
}

if (tmp_event_press_short       == 1) { // обработать короткое нажатие
tmp_event_press_short = 0; // сброс временного значения события
digitalWrite( 5, !digitalRead( 5));
}
}

}

 

 

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

Клапауций 298 пишет:

кто в курсе - как он длинным нажатием включает выключенное устройство?

Xumuk пишет:

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

а, врубает - как?

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Клапауций 298 пишет:

как вариант алгоритма однокнопочного интерфейса с тремя и более функциями:

лаг разбора полётов не может быть менее, чем время обработки самой продолжительной из обрабатываемых функций - в конкретном случае это - дабл клик (~200 миллисекунд)

работает следующим образом - запоминаются события короткого нажатия и дабл клика, по истечении времени неактивности кнопки равной duration_check, получаем результат.

т.е. сделали короткое нажатие - подождали результата. сделали дабл клик - подождали результата. 
!!!это я написал тому, кто собрался долбить кнопку чаще 200 миллисекунд и будет потом орать, что у него опять всё тормозит и он в третий раз уходит крафтить новые библиотеки...
где-то я уже это слышал, но они же всем табуном тогда ушли на Север. О_О

#include <Button.h>

Button test;

void setup() {

pinMode( 4, OUTPUT); // LED_01
pinMode( 5, OUTPUT); // LED_02
pinMode(17, OUTPUT); // LED_03

test.NO(); // N.O. Normal Open

test.pullUp();

test.duration_bounce       (  50);
unsigned long duration_check = 200;
test.duration_click_Db     (duration_check);
test.duration_inactivity_Up(duration_check);
test.duration_press        ( 500);

test.button(18); // arduino pins connected to button

}

boolean tmp_event_press_short = 0;
boolean tmp_event_click_Db    = 0;

void loop() {
test.read();

if (test.event_click_Db     (0) == 1) tmp_event_click_Db    = 1; // запомнить событие до разбора полётов

if (test.event_press_short  (0) == 1) tmp_event_press_short = 1; // запомнить событие до разбора полётов

// не уверен, что не нужно запоминать событие - у кого-то и длинные нажатия могут конфликтовать с дабл кликом О_О
if (test.event_press_long   (0) == 1) digitalWrite(17, !digitalRead(17));

if (test.event_inactivity_Up(0) == 1) { // разбор полётов event_click_Db&event_press_short, event_click_Db - приоритет

if (tmp_event_click_Db          == 1) { // обработать двойной клик, короткое нажатие отменить
tmp_event_press_short = 0; // сброс временного значения события
tmp_event_click_Db    = 0; // сброс временного значения события
digitalWrite( 4, !digitalRead( 4));
}

if (tmp_event_press_short       == 1) { // обработать короткое нажатие
tmp_event_press_short = 0; // сброс временного значения события
digitalWrite( 5, !digitalRead( 5));
}
}

}

 

 

большое вам человеческое спасибо!

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

Клапауций 298 пишет:

Клапауций 298 пишет:

кто в курсе - как он длинным нажатием включает выключенное устройство?

Xumuk пишет:

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

а, врубает - как?

http://arduino.ru/forum/proekty/pultoskop-na-arduino-27mgts?page=28#comment-198291 пост #1422

в посте 1443 отдельная схемка

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

Xumuk пишет:

в посте 1443 отдельная схемка

ок.

Xumuk
Xumuk аватар
Offline
Зарегистрирован: 03.03.2016

попробовал с элементарным выводом на дисплей 0.96, и библиотекой OLED_I2C.h, такое ощущение, что она затормаживает велосипед примерно в 2 раза, а дабл клики вовсе не проходят=)

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

Xumuk пишет:

попробовал с элементарным выводом на дисплей 0.96, и библиотекой OLED_I2C.h, такое ощущение, что она затормаживает велосипед примерно в 2 раза, а дабл клики вовсе не проходят=)

зачем тебе дабл клики, если у тебя есть красивый экран по медленному интерфейсу? О_О

andycat
andycat аватар
Онлайн
Зарегистрирован: 07.09.2017

Xumuk пишет:

попробовал с элементарным выводом на дисплей 0.96, и библиотекой OLED_I2C.h, такое ощущение, что она затормаживает велосипед примерно в 2 раза, а дабл клики вовсе не проходят=)

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

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

andycat пишет:

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

откуда ты знаешь, что у него непростая библиотека?

andycat
andycat аватар
Онлайн
Зарегистрирован: 07.09.2017

Клапауций 298 пишет:

andycat пишет:

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

откуда ты знаешь, что у него непростая библиотека?

удивляюсь, странно как может вывод на экран тормозить всю программу....

помниться когда тестировал, получилось на 1 символ 24*32 пикселя 12.309 мс,

соответсвенно весь экран 128*32 заполнить требуется примерно 65 мс,

это с какой же частотой нужно выводить информацию и зачем так часто, чтоб все тормозило?

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

походу он в одном лупе более одного раза екран переписывает - 65+65+... вот и набирается критичное время.

andycat
andycat аватар
Онлайн
Зарегистрирован: 07.09.2017

Клапауций 298 пишет:

походу он в одном лупе более одного раза екран переписывает - 65+65+... вот и набирается критичное время.

е че остальной текст удалили :) ? становитесь культурным :) ?

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

andycat пишет:

е че остальной текст удалили :) ? становитесь культурным :) ?

то была заметка на полях чисто для себя - не имеющая никакой практической ценности для читателей этой темы.

если ты считаешь человека, скрывающего свои мысли от окружающих, культурным, то продолжай и дальше находиться в милом и полезном для окружающих тебя циников заблуждении.

andycat
andycat аватар
Онлайн
Зарегистрирован: 07.09.2017

Клапауций 298 пишет:

andycat пишет:

е че остальной текст удалили :) ? становитесь культурным :) ?

то была заметка на полях чисто для себя - не имеющая никакой практической ценности для читателей этой темы.

если ты считаешь человека, скрывающего свои мысли от окружающих, культурным, то продолжай и дальше находиться в милом и полезном для окружающих тебя циников заблуждении.

да ничего я не считаю, просто хорошее настроение, работа закончилась, вот и спросил :)

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

andycat пишет:

да ничего я не считаю, просто хорошее настроение, работа закончилась, вот и спросил :)

ничего - это быстро пройдёт.

Клапауций 298
Клапауций 298 аватар
Offline
Зарегистрирован: 25.01.2018

мелкий фикс #643


#include <Button.h>

Button test;

void setup() {

pinMode( 4, OUTPUT); // LED_01
pinMode( 5, OUTPUT); // LED_02
pinMode(17, OUTPUT); // LED_03

test.NO(); // N.O. Normal Open

test.pullUp();

test.duration_bounce       (  50);
unsigned long duration_check = 200;
test.duration_click_Db     (duration_check);
test.duration_inactivity_Up(duration_check);
test.duration_press        ( 500);

test.button(18); // arduino pins connected to button

}

boolean tmp_event_press_short = 0;
boolean tmp_event_click_Db    = 0;

void loop() {
test.read();

if (test.event_click_Db     (0) == 1) tmp_event_click_Db    = 1; // запомнить событие до разбора полётов

if (test.event_press_short  (0) == 1) tmp_event_press_short = 1; // запомнить событие до разбора полётов

// не уверен, что не нужно запоминать событие - у кого-то и длинные нажатия могут конфликтовать с дабл кликом О_О
if (test.event_press_long   (0) == 1) {
tmp_event_press_short = 0; // !!!fix!!! сброс временного значения события
tmp_event_click_Db    = 0; // !!!fix!!! сброс временного значения события
digitalWrite(17, !digitalRead(17));
}

if (test.event_inactivity_Up(0) == 1) { // разбор полётов event_click_Db&event_press_short, event_click_Db - приоритет

if (tmp_event_click_Db          == 1) { // обработать двойной клик, короткое нажатие отменить
tmp_event_press_short = 0; // сброс временного значения события
tmp_event_click_Db    = 0; // сброс временного значения события
digitalWrite( 4, !digitalRead( 4));
}

if (tmp_event_press_short       == 1) { // обработать короткое нажатие
tmp_event_press_short = 0; // сброс временного значения события
digitalWrite( 5, !digitalRead( 5));
}

}

}