Arduino за ошибку утверждения. Ожидается ')' до ';' маркер. Как это исправить? - PullRequest
0 голосов
/ 11 февраля 2020

Я относительно новичок в Arduino и C ++, и я застрял на этой ошибке. Я пытаюсь, чтобы светодиоды проходили по матрице одновременно.

Полученное сообщение об ошибке:

«статус выхода 1. ожидается») «до»; token "

Любая помощь будет отличной.

#define NUM_LEDS 64
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
int count1 = 0;
int count2 = 0;

void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}

void loop() {
  for ((count1 = 0; count1 <= 15; count1++) and (count2 = 31; count2 >= 16; count2--)) {
    leds[count1] = CRGB::Blue;
    leds[count2] = CRGB::Blue;
    FastLED.show();
    delay(100);
    leds[count1] = CRGB::Black;
    leds[count2] = CRGB::Black;
  }
}

Ответы [ 2 ]

4 голосов
/ 11 февраля 2020

Ваш for l oop не работает.

A for l oop: for (initial; test; update)

У вас есть все эти три части дважды с "и" между ними, что является недопустимым синтаксисом.

for ((count1 = 0; count1 <= 15; count1++) and (count2 = 31; count2 >= 16; count2--)) { <- Неверно! </p>

Что вы можете сделать, это :

for (count1 = 0, count2 = 31; count1 <= 15 && count2 >= 16; count1++, count2--)

1 голос
/ 11 февраля 2020

В предоставленном вами коде есть ряд проблем (например, не определение ваших переменных - однако, я предполагаю, что вы просто не предоставили весь соответствующий код). Основной проблемой является ваш синтаксис "для l oop", который может выглядеть следующим образом:

#define NUM_LEDS 64
#define DATA_PIN 3
CRGB leds[NUM_LEDS];
int count1 = 0;
int count2 = 0;

void setup() {
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
}

void loop() {
  for (count1 = 0; count1 <= 15; count1++){
    for (count2 = 31; count2 >= 16; count2--) {
        leds[count1] = CRGB::Blue;
        leds[count2] = CRGB::Blue;
        FastLED.show();
        delay(100);
        leds[count1] = CRGB::Black;
        leds[count2] = CRGB::Black;
    }
  }
}
...