Ви не увійшли.
Ну во первых можно написать простой код типа
int step=0;
void loop() {
// put your main code here, to run repeatedly:
if(myButt.isHolded(11))
switch(step)
{
case 0:
case 1:
case 2:
case 3:
case 4:
}
step++;
if(step>4) step=0;
}else{
step=0;
}
}
Ну или перейти к более сложной реализации вызовов функций в стеке ISR прерываний, либо через очереди от ISR , если код не сможет работать в ISR
Green пише:И это не предел. Нужно не искать, нужно спрашивать. На всех форумах, во всех разделах. Стесняться не надо.
Да ну в пень всё это. Всем до фонаря. До сих пор не решил проблему. С прерываниями не могу так как на 328 две ноги аппаратного прерывания и их не могу использовать так как у меня USB HID на них. Делать опрос кнопки в трёхсот строчках бред полный. Даже если и с прерываниями что то выйдет то мне без delay совершенно не нужен этот проект. А сложный код для меня слишком сложно. Не так много времени свободного ради одного проекта учить язык программирования. Жаль задумка была хорошей. Форумов 5 проштудировал. Уже и по личкам но все дохера умные и до рукожопов дела нет.
Нафига по личкам лазить ?
Вы тут не удосужились выложить нормально весь код. Если вы считаете, что кто-то будет колдовать над тем огрызком который тут привели... Тогда удачи в ожидании такого человека...
... Форумов 5 проштудировал. Уже и по личкам но все дохера умные и до рукожопов дела нет.
А что если так:
Пока кнопка нажата, на контроллер подаётся сигнал Reset. Когда кнопка нажимается, Reset снимается.
И это не предел. Нужно не искать, нужно спрашивать. На всех форумах, во всех разделах. Стесняться не надо.
Да ну в пень всё это. Всем до фонаря. До сих пор не решил проблему. С прерываниями не могу так как на 328 две ноги аппаратного прерывания и их не могу использовать так как у меня USB HID на них. Делать опрос кнопки в трёхсот строчках бред полный. Даже если и с прерываниями что то выйдет то мне без delay совершенно не нужен этот проект. А сложный код для меня слишком сложно. Не так много времени свободного ради одного проекта учить язык программирования. Жаль задумка была хорошей. Форумов 5 проштудировал. Уже и по личкам но все дохера умные и до рукожопов дела нет.
И это не предел. Нужно не искать, нужно спрашивать. На всех форумах, во всех разделах. Стесняться не надо.
VectorCrush пише:... Мне нужно выполнять проверку после каждой (или через одну) строку? Я только три дня назад начал всем этим заниматься.
Да, во всех тех местах где, по логике, возможен или нужен выход из последовательности вычислений. Три дня - маловато, нужно хотя-бы четыре.
Четвёртый идёт Вчера начал по форумам искать.
... Мне нужно выполнять проверку после каждой (или через одну) строку? Я только три дня назад начал всем этим заниматься.
Да, во всех тех местах где, по логике, возможен или нужен выход из последовательности вычислений. Три дня - маловато, нужно хотя-бы четыре.
TrinketHidCombo.poll();
а где подключение библиотеки ?
Я для примера убрал из кода подключение библиотеки. Если есть мысли по этому вопросу можете на почту написать буду очень признателен.
TrinketHidCombo.poll();
а где подключение библиотеки ?
Ну так в тех местах откуда нужно вернуться и выполняйте проверку кнопки. Используйте оператор goto или return, для уменьшения количества скобок в тексте. Возврат же из дерева вычислений и прерывание процессов требует более сложной техники программирования, чем применяется у вас.
Возврат из дерева вычислений мне не нужен. Просто такого и не будет. Если я вас правильно понял. Мне нужно выполнять проверку после каждой (или через одну) строку? Я только три дня назад начал всем этим заниматься.
Ну так в тех местах откуда нужно вернуться и выполняйте проверку кнопки. Используйте оператор goto или return, для уменьшения количества скобок в тексте. Возврат же из дерева вычислений и прерывание процессов требует более сложной техники программирования, чем применяется у вас.
Точку с запятой уберите, в операторе if. А также проясните что и где выполнялось и где у него начало, https://forum.arduino.ua/post.php?tid=2131&qid=30606#если хотите получить какой нибудь ответ.
void loop() {
TrinketHidCombo.poll();
if (myButt.isHolded(11)) {
delay(2); // Начало и нужно в любой момент завершить по отжатию и вернуться в начало без выполнения далее и начать выполнение по нажатию снова
TrinketHidCombo.mouseMove(5,5,0); // Очень много раз около 40-50
delay(2); // Много однообразного кода
TrinketHidCombo.mouseMove(5,5,0); // Много однообразного кода
delay(6); // Много однообразного кода
TrinketHidCombo.mouseMove(5,5,0); // конец
}
}
Извиняюсь если не внятно объясняю
Точку с запятой уберите, в операторе if. А также проясните что и где выполнялось и где у него начало, если хотите получить какой нибудь ответ.
Доброго времени суток. Есть скетч, на 11й pin стоит кнопка. Как сделать что бы пока я держу выполнялось, после отжатия кнопки переходило в начало. Мне не нужно сразу весь а только тогда когда я держу кнопку и каждый раз сначала. Помогите пожалуйста уже третий день сижу кучу библиотек перепробовал.
#include "GyverButton.h"
GButton myButt(11, HIGH_PULL, NORM_OPEN);
void setup() {
myButt.setDebounce(10);
myButt.setTimeout(10);
myButt.setTickMode(AUTO);
}
void loop() {
if (myButt.isHolded(11)) {
delay(2); // Начало и нужно в любой момент завершить по отжатию и вернуться в начало без выполнения далее и начать выполнение по нажатию снова
TrinketHidCombo.mouseMove(5,5,0); // Очень много раз около 40-50
delay(2); // Много однообразного кода
TrinketHidCombo.mouseMove(5,5,0); // Много однообразного кода
delay(6); // Много однообразного кода
TrinketHidCombo.mouseMove(5,5,0); // конец
}
}