Здравствуйте. Помогите, пожалуйста, разобраться. С видео напечатал код в IDE. Выдаёт ошибку expected ')' before ';' token Причём, две одинаковых строчки, но с разницей только, что одна про минуты, а вторая про секунды, но как их не меняй местами, всегда ругается именно на ту, что с секундами: int seconds = numberOfSeconds(timeRemaining); Полный текст ошибки: Код (C++): C:\Arduino\2 min\sketch_may05a\sketch_may05a.ino: In function 'void countdown()': sketch_may05a:30:49: error: expected ')' before ';' token int seconds = numberOfSeconds(timeRemaining); ^ exit status 1 expected ')' before ';' token Вот этот кусок кода в видео: А вот этот же кусок кода после компиляции у меня: Если поменять порядок на Код (C++): int minutes = numberOfMinutes(timeRemaining); int seconds = numberOfSeconds(timeRemaining); то он откомпилирует строчку с минутами и будет ругаться на вторую строчку с секундами. Код целиком: Код (C++): #define numberOfSeconds(_time_) ((_time_ / 1000%60) #define numberOfMinutes(_time_) (((_time_ / 1000) / 60) % 60) #include <TM1637Display.h> const uint8_t OFF[] = {0, 0, 0, 0}; const uint8_t PLAY[] = {B01110011, B00111000, B01011111, B01101110}; TM1637Display display(2, 3); // Clock pin, Data pin unsigned long timeLimit = 3600000; void setup() { Serial.begin(9600); //set brightness display.setBrightness(0x0c); //clear the display display.setSegments(OFF); } void countdown() { unsigned long timeRemaining = timeLimit - millis(); while (timeRemaining > 0) { int seconds = numberOfSeconds(timeRemaining); int minutes = numberOfMinutes(timeRemaining); display.showNumberDecEx(seconds, 0, true, 2, 2); display.showNumberDecEx(minutes, 0x80 >> 3, true, 2, 0); timeRemaining = timeLimit - millis(); } } void loop() { countdown(); }
В первой строке в коде пропущена скобка. Нужно так: Код (C++): #define numberOfSeconds(_time_) ((_time_ / 1000%60))