Не работает void loop(); esp32
Написал довольно простой код для бегущей строки на ESP32 с использованием FastLED. Компилятор ArduinoIDE.
Столкнулся с проблемой анимации. Void loop(); лишь один раз проводит действия внутри себя. С чем это может быть связано?
Начальное состояние
Конечное состояние.
Хотя вданном примере кода это и есть начальное состояние, но по принципу работы void loop(); должен быть постоянный сдвиг и вывод изображения.
#include <FastLED.h>
#define NUM_LEDS 240
#define LED_TYPE WS2812
#define COLOR_ORDER GRB
#define DATA_PIN 4
#define BRIGHTNESS 20
CRGB leds[NUM_LEDS];
int Mask[7][30] = { //Матрица-маска с символами.
{0,0,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0,0,0},
{0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,0},
{1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0},
{1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,0,0,1,0},
{1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,1,0,0,0,1,0},
{1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,0},
{1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,1,1,0,0,0}
};
String color = "";
int temp = 0;
int temp2 = 6;
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS); // GRB ordering
FastLED.setBrightness(BRIGHTNESS);
}
void loop()
{
for (int i = 0; i < 7; i++)
{
for (int j = 0; j < 30; j++)
{
if (j < 29)
{
Mask[i][j] = Mask[i][j + 1]; //сдвиг влево
}
}
}
while (temp2!=-1) //Вывод на матрицу
{
if (temp2%2==0)
{
temp=0;
while (temp<30)
{
if (Mask[temp2][temp]==0)
{
leds[abs(temp2-6)*30+temp]=0x000000;
}
if (Mask[temp2][temp]==1)
{
leds[abs(temp2-6)*30+temp]=0xFF0000;
}
temp++;
}
}
if (temp2%2==1)
{
temp=29;
while (temp!=-1)
{
if (Mask[temp2][temp]==0)
{
leds[abs(temp2-6)*30 +(29-temp)]=0x000000;
}
if (Mask[temp2][temp]==1)
{
leds[abs(temp2-6)*30+(29-temp)]=0xFF0000;
}
temp--;
}
}
temp2--;
}
FastLED.show();
delay(100);
}