BlinkWithoutDelay раз 5)
- Войдите на сайт для отправки комментариев
Пнд, 21/09/2015 - 16:01
Мужики, возник такой момент в моей карьере "тру-программиста": Представим, что нужно сделать штук 5 блинков без делэя с разным интервалом времени... Я могу решить это обычным способом, примерно так:
unsigned long cTime=0; unsigned long pTime=0; unsigned long pTime1=0; unsigned long pTime2=0; unsigned long pTime3=0; unsigned long pTime4=0; //ну и так далее, не буду плодить бесполезный код void loop(){ cTime=millis();// ну тут понятно... if (cTime-pTime>1000){ //и тут понеслась.... digitalWrite(led1Pin, !digitalRead(led1Pin)) // мигаем первой лампочкой pTime=cTime; } if (cTime-pTime2>2000){ // и так можно до опупения... digitalWrite(led2Pin, !digitalRead(led2Pin)) // мигаем второй лампочкой pTime2=cTime;
}
}
Но это ведь издевательство какое-то... Как бы попроще сделать, типа как в теме про "blynk" (ну кто читал), вроде timer.setInterval(тут пишем параметр времени, через которое будет запускаться ФУНКЦИЯ... , а тут пишем саму эту ФУНКЦИЮ)... Там, конечно, сложновато.... Рад буду и промежуточному способу... Подскажите куда копать.
У меня в светофоре был массив шириной в полный цикл, ну а дальше обычным способом: millis()-метка времени, с разрешением цикла, для светофора 500 мс т. к. зелёный мигает по полсекунды, ну думаю понятно.
Вот тут через прерывания мигают с произвольными интервалами.
http://www.pjrc.com/teensy/td_libs_Metro.html - не?
Нихрена себе, отвернулся чаю налить, а тут 3 ответа уже.. Спасибо всем! Щааааа разберусь че тут для меня ТоСамое!
http://www.pjrc.com/teensy/td_libs_Metro.html - не?
Саааамый то, что нужно практически! Большое спасибо! Затестил - работает!
P.S. Класс титановая кнопка продолжает исправно работать!
P.S. Класс титановая кнопка продолжает исправно работать!
на то он и титановый велосипед - пользуйся на здоровье
А так спасибо! Хороший пример для понимания всей логики... Вот Setup только не понял.. Че такое memset и как оно появилось, если не было объявлено... Ну и что за значения внутри нее?
Че такое memset и как оно появилось,
Это pTime[0]=0;pTime[1]=0;pTime[2]=0;pTime[3]=0;pTime[4]=0; Стандартное.
Тобишь, как я вижу и понимаю:
memset(pTime, 0,
sizeof
(pTime)); ==== Устанавливаем одинаковое значение для всех переменных МАССИВА (МАССИВ, значение,
НЕПОНЯТНАЯ ФИГНЯ)
. Какую роль тут играетsizeof
(pTime)?
http://www.pjrc.com/teensy/td_libs_Metro.html - не?
Пока не понял что это такое, но интуиция подсказывает что нужная штука.
Сенкс.
Пока не понял что это такое, но интуиция подсказывает что нужная штука.
Сенкс.
Ды офигеть какая на самом деле... Я уже заценил все прелести... Самое то!
Пока не понял что это такое, но интуиция подсказывает что нужная штука.
Сенкс.
Ды офигеть какая на самом деле... Я уже заценил все прелести... Самое то!
Объясни
Ну как-то так...
Ну как-то так...
Спасибо :)