Помощь нубу!!!!!!!!!!!

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

  1. Paulus

    Paulus Нерд

    Вот скетч :
    Код (C++):
    #define LED 9
    #define BUTTON 8            
    int val=0;                    
    int state=0;                  
    int old_val;
    int brightness=128;
    unsigned long startTime =0;
    void setup(){
      pinMode(LED, OUTPUT);
      pinMode( BUTTON, INPUT);
    }
    void loop()
    {
      val = digitalRead(BUTTON);  
      if((val==HIGH)&&(old_val==LOW))
      {              
        state=1-state;
        startTime = millis();
        delay(10);
      }
      if((val==HIGH)&&(old_val==HIGH))
       {
       if (state == 1 && (millis() - startTime) > 500){
         brightness++;
         delay(10);
         if (brightness>255)
        {
          brightness=0;
        }
       }
    }

      old_val=val;
      if(state==1){
        analogWrite(LED, brightness);
        brightness level;
      }else{
        analogWrite(LED, 0);
      }
    }
    Вот ошибка:

    sketch_feb06bLED_migalka.ino: In function 'void loop()':
    sketch_feb06bLED_migalka.ino:36:13: error: expected ';' before 'level'
    Ошибка компиляции.



    что ему не нравится?
     
    Последнее редактирование: 12 фев 2017
  2. Tim308

    Tim308 Нерд

    Что это за строчка?
     
  3. ИгорьК

    ИгорьК Гуру

    Пожалуйста, помогите ваш код прочитать - оформите его правильно.
     
    Tomasina нравится это.
  4. Unixon

    Unixon Оракул Модератор

    Бывший комментарий.
     
  5. Tim308

    Tim308 Нерд

  6. M0ln1a

    M0ln1a Гик

    На заметку: в настройках IDE поставьте галочку на нумерование строк, тогда сразу будет понятно где ошибка!
    И код не надо так копировать, это издевательство над глазами форумчан :)! Отредактируйте вопрос: скетч надо вырезать, и вставить в панель "Код"
    Все должно выглядеть вот так:
    Код (C++):
    #define LED 9
    #define BUTTON 8
    int val=0;
    int state=0;
    int old_val;
    int brightness=128;
    unsigned long startTime =0;
    void setup(){
    pinMode(LED, OUTPUT);
    pinMode( BUTTON, INPUT);
    }
    void loop()
    {
    val = digitalRead(BUTTON);
    if((val==HIGH)&&(old_val==LOW))
    {
    state=1-state;
    startTime = millis();
    delay(10);
    }
    if((val==HIGH)&&(old_val==HIGH))
    {
    if (state == 1 && (millis() - startTime) > 500){
    brightness++;
    delay(10);
    if (brightness>255)
    {
    brightness=0;
    }
    }
    }

    old_val=val;
    if(state==1){
    analogWrite(LED, brightness);
    brightness level;
    }else{
    analogWrite(LED, 0);
    }
    }
     
  7. mcureenab

    mcureenab Гуру

    sketch_feb06bLED_migalka.ino - файл с ошибкой. В C++ файлы могут называться как угодно.
    36 - строка в файле выше
    13 - смещение от начала строки 36
    expected ';' before 'level' - что компилятор ожидал встретить ( ; ) и дополнительно перед каким словом (level) чтобы быстрее найти место с ошибкой.

    В принципе тут и = подошло бы и еще моного каких операторов, но пробел тут точно не у дел. И что такое level не понятно. Вам нужно понять, что тут должно быть.
     
  8. ostrov

    ostrov Гуру

    Хорошо бы еще форматнуть автоформатированием.
     
  9. Tim308

    Tim308 Нерд

    Да кусок комментария это.Автор абсолютно не разобрался что он там копирует, оставив это "удовольствие" всем желающим.
     
  10. Paulus

    Paulus Нерд

    Как накинулись то сразу
     
  11. Paulus

    Paulus Нерд

    Вот в этой строчке ошибка:
    brightness level;
     
  12. mcureenab

    mcureenab Гуру

    Вы понимаете что это? Дле чего это? Что это должно быть? Я не понимаю. И компилятор не понимает.

    Некоторые считают, что эта строка не нужна.
    Код (C++):
    // brightness level;
     
  13. Paulus

    Paulus Нерд

    Скетч взят из книги "Знакомство с ардуино" из главы 5.2. Скетч переписан без ошибок, а пояснения к нему нету. Ардуино приобрел недавно. Тупо качать скетчи с нета не хочу. Хочу сам их писать и понимать. А толкового материала понятного обычному смертному еще не нашел.
     
  14. rkit

    rkit Гуру

    Прочитайте любую книгу по С++, хотя бы первую половину. Дальше будет понятно.
     
  15. Paulus

    Paulus Нерд

    На сколько я понял программирование выглядит примерно так:
    Ардуино работает на асемблере, программирование в среде IDE происходит на С подобном языке. Компелятор с этого языка перегоняет в с++ потом последовательно еще в какой то или какие то и в конце на асемблер который заливается на ардуино.
    Какой именно С подобный язык?
    Или не так?
     
  16. rkit

    rkit Гуру

    Программирование в среде происходит на С++. Компилятор его компилирует в машинный код, который заливается на ардуино. Всё.
     
  17. Paulus

    Paulus Нерд

    Любая может подойти тому кто хоть как то разбирается в пограммирование. Попробовал Любую книгу и ничего не понял кроме того что она о Си. Где найти песочнице где все это разъяснят по полочкам. Более менее понятный по первым двадцати страницам но состоящий из 40 и без полных скетчей во вложение.
    Может есть более конкретный материал?
     

    Вложения:

  18. rkit

    rkit Гуру

    Вам не нужен "блокнот программиста", вам нужно "С++ для чайников". В ближайшем магазине найдется.
     
  19. ostrov

    ostrov Гуру

    Даже в ближайший магазин идти не нужно в наше время. В интернете полно ресурсов с подробным разжовыванием и примерами.
     
  20. Unixon

    Unixon Оракул Модератор

    Оригинал кода с комментариями:
    Код (C++):

    #define LED 9 // the pin for the LED

    #define BUTTON 7 // input pin of the pushbutton

    int val = 0; // stores the state of the input pin

    int old_val = 0; // stores the previous value of "val"

    int state = 0; // 0 = LED off while 1 = LED on

    int brightness = 128; // Stores the brightness value

    unsigned long startTime = 0; // when did we begin pressing?

    void [B]setup[/B]() {

    pinMode(LED, OUTPUT); // tell Arduino LED is an output

    pinMode(BUTTON, INPUT); // and BUTTON is an input

    }

    void [B]loop[/B]() {

    val = digitalRead(BUTTON); // read input value and store it

    // yum, fresh

    // check if there was a transition

    if ((val == HIGH) && (old_val == LOW)) {

    state = 1 - state; // change the state from off to on

    // or vice-versa

    startTime = millis(); // millis() is the Arduino clock

    // it returns how many milliseconds

    // have passed since the board has

    // been reset.

    // (this line remembers when the button

    // was last pressed)

    delay(10);

    }

    // check whether the button is being held down

    if ((val == HIGH) && (old_val == HIGH)) {

    // If the button is held for more than 500ms.

    if (state == 1 && (millis() - startTime) > 500) {

    brightness++; // increment brightness by 1

    delay(10); // delay to avoid brightness going

    // up too fast

    if (brightness > 255) { // 255 is the max brightness

    brightness = 0; // if we go over 255

    // let's go back to 0

    }

    }

    }

    old_val = val; // val is now old, let's store it

    if (state == 1) {

    analogWrite(LED, brightness); // turn LED ON at the

    // current brightness level

    } else {

    analogWrite(LED, 0); // turn LED OFF

    }

    }