expected ';' before '{' token

iGorw
Offline
Зарегистрирован: 04.09.2016
в общем такая ошибка, ниже привожу скрин, и код целиком. смысл ошибки я понимаю. но вот куда именно я должен поставить этот символ и самое главное зачем? до меня не доходит кто подскажет? если есть необходимость могу обяснить строки кода, если в кратце то это: дисплей на который выводятся данные с двух датчиков температуры и влажности, две кнопки, одна перезагружает устройство, другая включает подсветку) 
#include <TroykaDHT.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
DHT dht1(2, DHT21);
DHT dht2(4, DHT11);
int switchPin = 8;
int switchPin2 = 7;
boolean lastButton = LOW;
boolean currentButton = LOW;
boolean lastButton2 = LOW;
boolean currentButton2 = LOW;
long previousMillis = 0;
long interval = 3000; 
int screen = 1;

void conclusion (int n)
{
  if (n==1)
  {
   // lcd.backlight(); 
  dht1.read();
  // Устанавливаем курсор на вторую строку и нулевой символ.
  lcd.setCursor(7, 0);
  lcd.print(dht1.getTemperatureC());
  lcd.setCursor(14, 1);
  lcd.print("St");
  lcd.setCursor(7, 1);
  lcd.print(dht1.getHumidity());
  screen = 1;
  }
  else (n==2)
  {
  dht2.read();
  lcd.setCursor(7, 0);
  lcd.print(dht2.getTemperatureC());
  lcd.setCursor(14, 1);
  lcd.print("Ho");
  lcd.setCursor(7, 1);
  lcd.print(dht2.getHumidity());
  screen = 2;
  }
}

void setup()
{
  pinMode (switchPin, INPUT);
  pinMode (switchPin2, INPUT);
  dht1.begin();
  dht2.begin();
  lcd.init();                     
  //lcd.backlight();// Включаем подсветку дисплея
  lcd.print("Temp = ");
  lcd.setCursor(13, 0);
  lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print("Hum = ");
  lcd.setCursor(12, 1);
  lcd.print("%");
 // lcd.print("LCD 1602");
}

boolean debounce(boolean last)
{
  boolean current = digitalRead (switchPin);
  if (last != current)
  {
    delay(5);
    current = digitalRead (switchPin);
    
    }
    return current;
  }

boolean debounce2(boolean last2)
{
  boolean current2 = digitalRead (switchPin2);
  if (last2 != current2)
  {
    delay(5);
    current2 = digitalRead (switchPin2);
    
    }
    return current2;
  }
void loop()
{
  conclusion (1);

  unsigned long currentMillis = millis();

  if(currentMillis - previousMillis > interval)
  {
    if (screen == 1)
    {
    conclusion (2);
    previousMillis = currentMillis; 
    }
    else (screen == 2)
    {
    conclusion (1);
    previousMillis = currentMillis; 
    }
  }
    currentButton = debounce(lastButton);
  if (lastButton == LOW && currentButton == HIGH)
  {
    asm("JMP 0");
    }
  lastButton = currentButton;

  currentButton2 = debounce2(lastButton2);
  if (lastButton2 == LOW && currentButton2 == HIGH)
  {
    lcd.backlight(); 
        
    }
  lastButton2 = currentButton2;
  
  
  //asm("JMP 0");//перезагрузка
  // Выводим на экран количество секунд с момента запуска ардуины
  //lcd.print(millis()/1000);
}

 

sadman41
Offline
Зарегистрирован: 19.10.2016

А объясните строку 100, например.

iGorw
Offline
Зарегистрирован: 04.09.2016

iGorw
Offline
Зарегистрирован: 04.09.2016

screen это параметр того что выведено на экране, данные с первого датчика или со второго 1 и 2, соответсвенно она значит "иначе, если данные на экране выведены со второго датчика"

sadman41
Offline
Зарегистрирован: 19.10.2016

Почитайте про синтаксис if-else

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015
iGorw
Offline
Зарегистрирован: 04.09.2016

благодарю

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

внимательно читайте

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

iGorw пишет:
соответсвенно она значит "иначе, если данные на экране выведены со второго датчика"

А если на неё внимательно посмотреть?

else (screen == 2)

А если глаза потереть? А может ещё и в шпаргалку заглянуть?

С ней точно всё нормально? Прямо точно-точно?

nik182
Offline
Зарегистрирован: 04.05.2015

Это не паскаль... 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

В Паскале такого тоже нет.

nik182
Offline
Зарегистрирован: 04.05.2015

Да, это я погорячился.