Ошибка в коде

Тема в разделе "Arduino & Shields", создана пользователем dea94, 16 ноя 2015.

  1. dea94

    dea94 Нуб

    Здравствуйте, по уроку: https://www.arduino.cc/en/Tutorial/DueSimpleWaveformGenerator - сделал 2 файла. Первый FunctionGenerator.ino, а второй Waveform.h
    При проверке кода выдает ошибку:
    Arduino: 1.6.6 (Windows 10), Плата:"Arduino/Genuino Uno"

    C:\Users\Mikhail\Documents\Arduino\FunctionGenerator\FunctionGenerator.ino: In function 'void setup()':

    FunctionGenerator:24: error: 'analogWriteResolution' was not declared in this scope

    analogWriteResolution(12); // set the analog output resolution to 12 bit (4096 levels)

    ^

    FunctionGenerator:25: error: 'analogReadResolution' was not declared in this scope

    analogReadResolution(12); // set the analog input resolution to 12 bit

    ^

    In file included from sketch\FunctionGenerator.ino.cpp:1:0:

    C:\Users\Mikhail\Documents\Arduino\FunctionGenerator\FunctionGenerator.ino: In function 'void loop()':

    FunctionGenerator:36: error: 't_sample' was not declared in this scope

    sample = constrain(t_sample, 0, oneHzSample);

    ^

    D:\Борисов диск Д\arduino-1.6.6-windows\hardware\arduino\avr\cores\arduino/Arduino.h:87:35: note: in definition of macro 'constrain'

    #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))

    ^

    FunctionGenerator:38: error: 'DAC0' was not declared in this scope

    analogWrite(DAC0, waveformsTable[wave0]); // write the selected waveform on DAC0

    ^

    FunctionGenerator:39: error: 'DAC1' was not declared in this scope

    analogWrite(DAC1, waveformsTable[wave1]); // write the selected waveform on DAC1

    ^

    exit status 1
    'analogWriteResolution' was not declared in this scope

    Это сообщение будет содержать больше информации чем
    "Отображать вывод во время компиляции"
    включено в Файл > Настройки

    Что делать?
     
  2. Mestniy

    Mestniy Гуру

    Можете добавить ошибку в поле код?
     
  3. Mestniy

    Mestniy Гуру

    Скетчи копировали или дорабатывали? Если дорабатывали, то в студию их!
     
  4. dea94

    dea94 Нуб

    Скетчи не трогал, а просто скопировал.
    Код (C++):
    Arduino: 1.6.6 (Windows 10), Плата:"Arduino/Genuino Uno"

    C:\Users\Mikhail\Documents\Arduino\FunctionGenerator\FunctionGenerator.ino: In function 'void setup()':

    FunctionGenerator:25: error: 'analogWriteResolution' was not declared in this scope

    analogWriteResolution(8);  // set the analog output resolution to 12 bit (4096 levels)

                            ^

    FunctionGenerator:26: error: 'analogReadResolution' was not declared in this scope

       analogReadResolution(8);   // set the analog input resolution to 12 bit

                             ^

    In file included from sketch\FunctionGenerator.ino.cpp:1:0:

    C:\Users\Mikhail\Documents\Arduino\FunctionGenerator\FunctionGenerator.ino: In function 'void loop()':

    FunctionGenerator:37: error: 't_sample' was not declared in this scope

       sample = constrain(t_sample, 0, oneHzSample);

                          ^

    D:\Борисов диск Д\arduino-1.6.6-windows\hardware\arduino\avr\cores\arduino/Arduino.h:87:35: note: in definition of macro 'constrain'

    #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))

                                       ^

    FunctionGenerator:39: error: 'DAC0' was not declared in this scope

       analogWrite(DAC0, waveformsTable[wave0][i]);  // write the selected waveform on DAC0

                   ^

    FunctionGenerator:40: error: 'DAC1' was not declared in this scope

       analogWrite(DAC1, waveformsTable[wave1][i]);  // write the selected waveform on DAC1

                   ^

    exit status 1
    'analogWriteResolution' was not declared in this scope

     
     
     
  5. Mestniy

    Mestniy Гуру

    А вы какую плату используете?
     
  6. dea94

    dea94 Нуб

    Arduino UNO R3. Знаю, что она 8bit, а код под 12bit. Но разве проверка учитывает модель платы?
     
  7. Mestniy

    Mestniy Гуру

    И во вкладке Сервис-Плата. У вас какая плата выбрана?
     
  8. Mestniy

    Mestniy Гуру

    Учтите, что analogWriteResolution() - это функция, расширяющая API для работы с аналоговыми величинами для Arduino Due.
     
  9. Mestniy

    Mestniy Гуру

    Да, и как насчет наличия библиотеки Waveforms.h?
     
  10. dea94

    dea94 Нуб

    В "Инструменты"-"Плата" стоит моя плата UNO R3
    Waveforms.h - создал и кинул в папку со скетчем.
     
  11. Mestniy

    Mestniy Гуру

    Покупайте Due!
     
  12. dea94

    dea94 Нуб

    Установил DUE, теперь выдает ошибку:
    Код (C++):
    Arduino: 1.6.6 (Windows 10), Плата:"Arduino Due (Programming Port)"

    In file included from C:\Users\Mikhail\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.6\cores\arduino/Arduino.h:44:0,

                     from sketch\FunctionGenerator.ino.cpp:1:

    C:\Users\Mikhail\Documents\Arduino\FunctionGenerator\FunctionGenerator.ino: In function 'void loop()':

    FunctionGenerator:37: error: 't_sample' was not declared in this scope

       sample = constrain(t_sample, 0, oneHzSample);

                          ^

    C:\Users\Mikhail\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.6\cores\arduino/wiring_constants.h:74:35: note: in definition of macro 'constrain'

    #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))

                                       ^

    exit status 1
    't_sample' was not declared in this scope

      Это сообщение будет содержать больше информации чем
      "Отображать вывод во время компиляции"
      включено в Файл > Настройки
     
     
  13. Mestniy

    Mestniy Гуру

    Что вы установили? Вы подключили Arduino Due?
     
  14. AlexU

    AlexU Гуру

    Для реализации этого примера нужен "честный" цифро-аналоговый преобразователь. В Arduino UNO такого нет. Даже если Вы каким-то образом заставите компилятор собрать исходники, то все равно работать как в уроке не будет.