Помогите найти ошибку в скетче

Тема в разделе "Arduino & Shields", создана пользователем Paulus, 10 фев 2017.

  1. Paulus

    Paulus Нерд

    Скетч ;

    #define LED 13
    #define BUTTON 7
    int val=0
    void setup()
    {
    pinMode(LED, OUTPUT);
    pinMode(BUTTON,INPUT);
    }

    void loop()
    {
    val = digitalRead(BUTTON);
    if(val==HIGH){
    digitalWrite(LED,HIGH);
    }else{
    digitalWrite(LED,LOW);
    }
    }

    Ошибка компеляции:

    sketch_feb06bLED_migalka1.ino:5:1: error: expected unqualified-id before numeric constant
    sketch_feb06bLED_migalka1.ino:5:1: error: expected ',' or ';' before 'void'
    Ошибка компиляции.

    Судя по всему ошибка гдето здесь, по крайней мере указывает сюда. Но танци с бумном и гугл результатов не дал.((((
    void setup()
    {
    pinMode(LED, OUTPUT);
    pinMode(BUTTON,INPUT);
    }
     
  2. rkit

    rkit Гуру

    Точки с запятой не хватает.
     
  3. Paulus

    Paulus Нерд

    СПС, нашёл.))))
    #define LED 13
    #define BUTTON 7
    int val=0 <------------------------------------ВОТ ТУТ
    void setup()
     
  4. Paulus

    Paulus Нерд

    Подскажите что значит строчка int val=0;
     
  5. rkit

    rkit Гуру

    Определяет переменную с именем val, типом int, и со значением 0.
     
  6. Paulus

    Paulus Нерд

    Это получается следующее:
    int val=0 // задаем переменную и выделяем ячейку памяти
    val = digitalRead(BUTTON); //проверяет состояние вывода и записывает результат в ячейку
    if(val==HIGH) // Сравнивает значение переменной
    digitalWrite(LED,HIGH); // истина светодиод не горит
    }else{ // или
    digitalWrite(LED,LOW); // лож светодиод горит

    В таком случае (int val=0 ) значение val не учитывается и может быть равно любому числу?
     
  7. rkit

    rkit Гуру

    Да. Можно было просто написать int val; Тогда там будет случайное число.
     
  8. ostrov

    ostrov Гуру

    Ни разу не было случайного, всегда 0. Может оптимизатор сам так делает, не понятно.
     
  9. ostrov

    ostrov Гуру

    Все это можно записать так:
    Код (C++):
    digitalWrite(LED,digitalRead(BUTTON));
     
  10. rkit

    rkit Гуру

    По стандарту поведение не определено. Значит может быть что угодно. Может быть сто раз подряд ноль, а на сто первый что-то другое. Разумеется. как генератор случайных чисел это использовать нельзя.
     
  11. Paulus

    Paulus Нерд

    при изменение на другие значения ничего не менялось)