помогите разобраться с ошибкой компиляции пожалуйста

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

  1. ToxaRU

    ToxaRU Гик

    Что делать? Все время эта ерунда((((

    Arduino: 1.6.4 (Windows 7), Плата"Arduino Nano, ATmega328"

    In file included from threeservos.ino:10:0:
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\hardware\arduino\avr\cores\arduino/Arduino.h:117:14: error: conflicting declaration 'typedef bool boolean'
    typedef bool boolean;
    ^
    In file included from threeservos.ino:3:0:
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2/ServoTimer2.h:76:17: error: 'boolean' has a previous declaration as 'typedef uint8_t boolean'
    typedef uint8_t boolean;
    ^
    Ошибка компиляции.

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

    Tomasina Сушитель лампочек Модератор

    в строке 3 попытка объявить переменную, которая уже была объявлена ранее.
    В строке 10 несоответствие типа переменной ее содержимому.
     
  3. ToxaRU

    ToxaRU Гик


    Это пример из библиотеки я его не правил даже...... Получается изначально в библиотеках ошибки? библиотеки разные качал-все равно это
     
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    значит что-то в коде конфликтует с этими строками.
     
  5. ToxaRU

    ToxaRU Гик

    код примитивный из примера.....((((((( пример не компилируется даже ..... А Вы не могли бы проверить библиотеку у себя? хотябы пример из нее скомпилировать... хоть определился бы у меня такая засада или библиотеки такие.... буду очень благодарен а то незнаю что делать уже вот ссылка https://cloud.mail.ru/public/9EBN/1rKZeCfRD
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    компилируется без ошибок.
    Попробуй установить Arduino IDE заново, либо в другую папку.
     
    ToxaRU нравится это.
  7. ToxaRU

    ToxaRU Гик

    спасибо хоть какое то направление появилось))) А версия IDE Какая у Вас?
     
  8. Megakoteyka

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

    Неа.
    conflicting declaration 'typedef bool boolean' - конфликт объявления типа boolean.
    'boolean' has a previous declaration as 'typedef uint8_t boolean' - тип boolean ранее объявлен как uint8_t.
    То есть тип дважды объявлен, да еще и по-разному.
    Найдите в ServoTimer2.h строчку "typedef uint8_t boolean" и закомментируйте ее, а в начале файла добавьте #include <Arduino.h>.
    Что оно теперь говорит?
     
  9. ToxaRU

    ToxaRU Гик

    Сейчас попробую..спасибо
     
  10. ToxaRU

    ToxaRU Гик


    говорит

    Arduino: 1.6.4 (Windows 7), Плата"Arduino Leonardo"

    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp: In function 'void TIMER2_OVF_vect()':
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:29:2: error: 'TCNT2' was not declared in this scope
    TCNT2 = servos[Channel].remainder; // yes, set count for overflow after remainder ticks
    ^
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:39:2: error: 'TCNT2' was not declared in this scope
    TCNT2 = 0; // reset the clock counter register
    ^
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp: In function 'void initISR()':
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:125:2: error: 'TCCR2A' was not declared in this scope
    TCCR2A = 0; // normal counting mode
    ^
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:126:2: error: 'TCCR2B' was not declared in this scope
    TCCR2B = _BV(CS21); // set prescaler of 8
    ^
    In file included from c:\users\антон\desktop\arduino\arduino-1.6.4\hardware\tools\avr\avr\include\avr\io.h:99:0,
    from c:\users\антон\desktop\arduino\arduino-1.6.4\hardware\tools\avr\avr\include\avr\interrupt.h:38,
    from C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:5:
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:126:15: error: 'CS21' was not declared in this scope
    TCCR2B = _BV(CS21); // set prescaler of 8
    ^
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:127:2: error: 'TCNT2' was not declared in this scope
    TCNT2 = 0; // clear the timer2 count
    ^
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:128:2: error: 'TIFR2' was not declared in this scope
    TIFR2 = _BV(TOV2); // clear pending interrupts;
    ^
    In file included from c:\users\антон\desktop\arduino\arduino-1.6.4\hardware\tools\avr\avr\include\avr\io.h:99:0,
    from c:\users\антон\desktop\arduino\arduino-1.6.4\hardware\tools\avr\avr\include\avr\interrupt.h:38,
    from C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:5:
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2\ServoTimer2.cpp:128:14: error: 'TOV2' was not declared in this scope
    TIFR2 = _BV(TOV2); // clear pending interrupts;
    ^
    Ошибка компиляции.

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

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

    В ServoTimer2.cpp добавьте
    #include <avr/interrupt.h>
    #include <Arduino.h>,
    а в ServoTimer2.h вместо #include <Arduino.h> пусть будет #include <inttypes.h> - это по аналогии с библиотекой Servo.h.
    У меня библиотеки ServoTimer2 нет и IDE 1.0.5 стоит, так что сам попробовать не могу, могу только догадки высказывать.
     
  12. ToxaRU

    ToxaRU Гик

    В ServoTimer2.cpp
    /* ServoTimer2.cpp*/
    extern "C" {
    // AVR LibC Includes
    #include <inttypes.h>
    #include <avr/interrupt.h>
    }
    #include <Arduino.h>
    #include "ServoTimer2.h"
    static void initISR();

    вроде и то и другое есть
     
  13. ToxaRU

    ToxaRU Гик


    В ServoTimer.h внес как Вы сказали а в cpp там вроде то что Вы сказали уже есть... теперь выдает


    Arduino: 1.6.4 (Windows 7), Плата"Arduino Leonardo"

    In file included from ServoTimer2.pde:3:0:
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2/ServoTimer2.h:74:2: error: 'boolean' does not name a type
    boolean attached(); // return true if this servo is attached
    ^
    C:\Users\Антон\Desktop\arduino\arduino-1.6.4\libraries\ServoTimer2/ServoTimer2.h:94:2: error: 'boolean' does not name a type
    boolean attached(int); // return true if the servo on the given channel is attached
    ^
    Ошибка компиляции.

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

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

    Откуда качали библиотеку ServoTimer2? Дайте ссылку или тут к сообщению прицепите. Сейчас качну IDE 1.6.4, попробую поковырять.
     
    ToxaRU нравится это.
  15. ToxaRU

    ToxaRU Гик

    https://cloud.mail.ru/public/9EBN/1rKZeCfRD я уже несколько вариантов качал-почему то мне кажется что дело в IDE и надо комп чистить......... ссылочка на последнюю ту что сейчас ставил
     
  16. ToxaRU

    ToxaRU Гик

    сейчас подчищу все и попробую 1.0.5 поставить
     
  17. ToxaRU

    ToxaRU Гик

    поставил 1.0.5 куча ошибок-незнаю что делать.........................(((((((((((((((((((((((((
     
  18. Megakoteyka

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

    Попробовал, чуда не произошло. Погуглил. Нашлось несколько топиков с описанием этой проблемы, но решения нигде нет. Похоже, что эта библиотека просто не поддерживает леонардо.

    Давайте попробуем копать в другую сторону. Чем не угодила штатная библиотека Servo?
     
  19. ToxaRU

    ToxaRU Гик

    она мне всем угодила до того момента как я не попробовал ее в одном скетче с <VirtualWire.h>.... И тут засада они конфликтуют-написано что на одних прирываниях сидят и один таймер используют(на форумах)... А мне без этой связки проект не закончить никак((((( У меня и серва должна работать и переменные идти через модули RF433... другие модули использовать немогу так как частоты 2.4 использовать нельзя-устройство будет на Wi-Fi антене сидеть(наводки будут)... засада прям уже дня 3 с форумов не вылезаю((
     
  20. Megakoteyka

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

    У меня даже пример из нее компилиться не захотел ни в какую.
    А VirtualWire заменить чем-нибудь не вариант?