Оптимизация функций
- Войдите на сайт для отправки комментариев
Ср, 25/05/2022 - 23:46
Всем привет!
Помогите новичку.
Есть две кнопки. Есть функция обработки двойного нажатия.
Как будет правильнее, использовать две функции для каждой кнопки или в одной функции опросить две кнопки?
1. Нажатие
2. Отпускание
3. Нажатие
4. Опускание
5. Возможный таймаут второго нажатия
Получается минимум 5 функций на каждую кнопку.
1. Нажатие
2. Отпускание
3. Нажатие
4. Опускание
5. Возможный таймаут второго нажатия
Получается минимум 5 функций на каждую кнопку.
Под•••ал?
Спасибо, суть уловил.
Мою шутку удалили, но это не совсем была шутка)). Я имел ввиду, что вопрос очень общий , но кнопки могут быть разные: аналоговые(лесенка), на прерываниях, кнопка ресет, наконец .
Если кнопки однотипные(например опрос в loop каждые 2мс), то можно сделать массив кнопок, и, использовать для каждой кнопки одни и те же функции(как в #1), просто изменяя индекс кнопки в массиве , и опрашивать их по очереди, напр
button[ i ]; i++; if(i > n) i = 0;
Это по оптимизации ИМХО.
button[ i ]; i++; if(i > n) i = 0;
Вот такую конструкцию недавно видел (адаптировал под пример выше):
)))))
можно сделать массив кнопок, и опрашивать их по очереди, напр
button[ i ]; i++; if(i > n) i = 0;
и что, по-твоему, делает первая часть этого выражения?
и что, по-твоему, делает первая часть этого выражения?
Здесь три строчки кода
1. button[i]; //в функцию опроса кнопки передаётся значение пина кнопки button[i] из массива button[];
2. i++; // увеличиваем индекс на 1.
3. if(i > n) i = 0; //если i > n(число пинов кнопок) i = 0; начинаем опрос сначала
1. button[i]; //в функцию опроса кнопки передаётся значение пина кнопки button[i] из массива button[];
передается ? в функцию? - ты что-то куришь...
ты что-то куришь...
Следите за собой. Это не готовый код, а лишь ответ в "общем". Каков вопрос- таков ответ.
Вот BOOM почему-то сразу понял
button[ i ]; i++; if(i > n) i = 0;
и что, по-твоему, делает первая часть этого выражения?
Это зависит от того, какого типа button, и как в этом типе определена операция взятия элемента по индексу.
3. if(i > n) i = 0; //если i > n(число пинов кнопок) i = 0; начинаем опрос сначала
Здесь ошибка!
Если n - "число пинов кнопок", то должно быть >=, а не >, т.к. они с нуля нумеруются.
Здесь ошибка!
Если n - "число пинов кнопок", то должно быть >=, а не >, т.к. они с нуля нумеруются.
Спасибо что поправили
А чего по-Вашему двойное нажатие? Опишите в подробностях. Типа:
Нажал, ушел поссать, пришел (у Вас как с простатой?)
Нажал один раз сразу (0.15 секунд) второй - ушел поссать.
Нажал, нажал, нажал!!! Нихера не работает!
Конечно не работает - "Нажал, нажал, нажал" это тройное, а не двойное ! )))
Конечно не работает - "Нажал, нажал, нажал" это тройное, а не двойное ! )))
А если "та - да - да - ДААМ..."?