Вопрос по доп функциям
- Войдите на сайт для отправки комментариев
Чт, 26/01/2012 - 00:57
Народ подскажите пожалуста как по адекватней сделать чето туплю,
вот кусок кода, тут два условия вконце каждого ссылка на доп функцию
если условие верно слишком долго то доп мотает несколько раз
вопрос?? как зделать что бы допы выполнялись однократно даже если условие продолжает быть тру?
if(time >=10 && time <=20 && engstate == off){ STRT();} if (time >= 150 && engstate == on){ astep = 2;delay(10);pretime = 0;time = 0; STOP();} void STRT(){ ///ПОЛНЫЙ ЦИКЛ digitalWrite(ign, 1);digitalWrite(imo, 1);delay(2000); digitalWrite(stb, 1);delay(500); digitalWrite(stb, 0);delay(3000); digitalWrite(ign, 0);digitalWrite(imo, 0); } void STOP (){ ///ТОЛЬКО digitalWrite(ign, 1);delay(3000); digitalWrite(stb, 1);delay(500); digitalWrite(stb, 0);delay(3000); digitalWrite(ign, 0); }
Надо ввести две дополнительные переменные, (например x y) и изменять их в доп функциях:
Только потом, когда условия в строках 1 и 4 будут false, надо x y приравнять обратно к нулю, иначе условия выполнятся только один раз.
Мдяя в том то и проблема что куда это обнуление втыкать непонятно.
Была бы какая нибуть команда типо сделать вот то() один разок; )
Например вот так можно сделать:
вообщем придумал кроссовер, одна функция разрешает другой, не совсем то но в данном порокатит)
Добавьте к каждому if контроператор else и вот там обнуляйте.