упростить код вывода времени и датчиков, нужно чтобы чаще, городить с функцией текущей не хотел не хотел, были косяки иногда, проскакивало время между датчиками решил оптимизировать код, с delay вышло намного компактнее и красивее) в принципе можно несколько раз делать опрос времени с задержкой в секунду, вот и будут мерцания)А зачем надо было туда лезть , если все работало ?
Просто для себя хотел узнать. Получается что за это условие Вы вызываете функцию GetSecond() 12 раз, у меня даже возникла мысль, что в процессе выполнения условия результат данной функции может поменяться. Просто хотел у ГУРУ уточнить, что в этом случае лучше делать, один раз опросить функцию, передав её значение в переменную перед условием и потом прогнать условие, или так тоже вполне адекватно?этот же код работает)
по сути тоже самое, те же операторы, только без условий по секундам)C++:if (GetSecond()>=16 && GetSecond()<=20 || (GetSecond()>=41 &&GetSecond()<=45)) {TempStreetToArray();} else if (GetSecond()>=8 && GetSecond()<=15 || (GetSecond()>=34 &&GetSecond()<=40)) {TempToArray();} else if (GetSecond()>=21&& GetSecond()<=25 || (GetSecond()>=46 && GetSecond()<=50)) {PressToArray();} else {TimeToArray();}
бывало такое, на короткое время) ну этот код не я придумал, он был уже, только доделал под свои нужды) больше датчиков, больше запросов)у меня даже возникла мысль, что в процессе выполнения условия результат данной функции может поменяться
Да я всё понимаю, просто для себя узнал. Глаз резало, а главное никто не поправлял, я уж засомневался в своей адекватности.бывало такое, на короткое время) ну этот код не я придумал, он был уже, только доделал под свои нужды) больше датчиков, больше запросов)
Хорошо, когда знаешь и понимаешь теорию)Да я всё понимаю, просто для себя узнал. Глаз резало, а главное никто не поправлял, я уж засомневался в своей адекватности.
void cylon () {
static uint8_t hue = 0;
Serial.print("x");
// First slide the led in one direction
for(int i = 0; i < NUM_LEDS; i++) {
// Set the i'th led to red
leds[i] = CHSV(hue++, 255, 255);
// Show the leds
FastLED.show();
// now that we've shown the leds, reset the i'th led to black
// leds[i] = CRGB::Black;
fadeall();
// Wait a little bit before we loop around and do it again
delay(10);
}
Serial.print("x");
// Now go in the other direction.
for(int i = (NUM_LEDS)-1; i >= 0; i--) {
// Set the i'th led to red
leds[i] = CHSV(hue++, 255, 255);
// Show the leds
FastLED.show();
// now that we've shown the leds, reset the i'th led to black
// leds[i] = CRGB::Black;
fadeall();
// Wait a little bit before we loop around and do it again
delay(10);
}
}
void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); } }
for(int k=0; k<=27;k++){
if (digits[digit][k] == 1){leds[cursor]=ledColor;}
else if (digits[digit][k]==0){leds[cursor]=0x000000;};
cursor ++;
};
if (digit != last_digit)
{
//cylon();
//ledColor = ColorTable[random(16)];
ledColor = ColorTable[2];
А если вот так?bool CYLON = false;
bool FADEAL = false;
void fadeall() {
if (FADEAL=true){... } }
void cylon () {
if (CYLON=true){...
fadeal;
...}}
даже если false, функция работает) я же указал, что работать при true)
А так будет работать.. типичная ошибка... А я уже не замтил... До 5 утра починял ребенку ноут, что бы мог смотреть свои дистанционные уроки..А если вот так?
void fadeall() {
if (FADEAL==true){... } }
void cylon () {
if (CYLON==true){...
fadeal;
...}}
void color(){
if (LEDCOLOR==0){
long ledColor = CRGB::Aqua;}
else if (LEDCOLOR==1){
long ledColor = ColorTable[random(16)];}
}
Точно нет. Потому как правильноа точно ledColor надо лонг ?
из кодаа точно ledColor надо лонг ?
long ledColor = CRGB::Aqua;
long ColorTable[16] = {
CRGB::Amethyst,
CRGB::Aqua,
CRGB::Blue,
CRGB::Chartreuse,
CRGB::DarkGreen,
CRGB::DarkMagenta,
CRGB::DarkOrange,
CRGB::DeepPink,
CRGB::Fuchsia,
CRGB::Gold,
CRGB::GreenYellow,
CRGB::LightCoral,
CRGB::Tomato,
CRGB::Salmon,
CRGB::Red,
CRGB::Orchid
};