Урок 21. Возможна проблема при оптимизации?
Добавлено: 15 сен 2019, 13:25
Здравствуйте.
Огромное спасибо Эдуарду за те знания и время которые он тратит на нас.
При изучении урока 21 возникла следующая проблема.
В бесконечном цикле :
void loop()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (disp.flagClick[i][j] == true)
{
disp.flagClick[i][j] = false;
disp.digit[3] = disp.digit[2];
disp.digit[2] = disp.digit[1];
disp.digit[1] = disp.digit[0];
disp.tetradToSegCod(0, codKeys[i][j]);
soundCount = 30;
}
}
}
}
код не работает без строки с комментариями (пример ниже). Либо на месте delay должен быть Serial.print().
void loop()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
delay(1); // Если delay закомментировать код не работает.
if (disp.flagClick[i][j] == true)
{
disp.flagClick[i][j] = false;
disp.digit[3] = disp.digit[2];
disp.digit[2] = disp.digit[1];
disp.digit[1] = disp.digit[0];
disp.tetradToSegCod(0, codKeys[i][j]);
soundCount = 30;
}
}
}
}
Компиляция проходит без ошибок в обоих случаях.
Пробовал компилировать в ARDUINO IDE, и в Visual Studio Code с PlatformIO - результат одинаков.
Не подскажите в чём причина?
Может быть виной оптимизация при компиляции?
Огромное спасибо Эдуарду за те знания и время которые он тратит на нас.
При изучении урока 21 возникла следующая проблема.
В бесконечном цикле :
void loop()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
if (disp.flagClick[i][j] == true)
{
disp.flagClick[i][j] = false;
disp.digit[3] = disp.digit[2];
disp.digit[2] = disp.digit[1];
disp.digit[1] = disp.digit[0];
disp.tetradToSegCod(0, codKeys[i][j]);
soundCount = 30;
}
}
}
}
код не работает без строки с комментариями (пример ниже). Либо на месте delay должен быть Serial.print().
void loop()
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
delay(1); // Если delay закомментировать код не работает.
if (disp.flagClick[i][j] == true)
{
disp.flagClick[i][j] = false;
disp.digit[3] = disp.digit[2];
disp.digit[2] = disp.digit[1];
disp.digit[1] = disp.digit[0];
disp.tetradToSegCod(0, codKeys[i][j]);
soundCount = 30;
}
}
}
}
Компиляция проходит без ошибок в обоих случаях.
Пробовал компилировать в ARDUINO IDE, и в Visual Studio Code с PlatformIO - результат одинаков.
Не подскажите в чём причина?
Может быть виной оптимизация при компиляции?