Arduino IDE .Ошибки компиляции.
- Войдите на сайт для отправки комментариев
Чт, 05/09/2019 - 16:43
Помогите убогому, пожалуйста!
Проблема: Собрана и проверена схема сигнализации (компилируется и загружается).При введении в схему сигнализации модуля ИК с пультом дистанционного управления, не проходит компиляция. Схема ИК модуля отдельно без изменений из проекта сигнализации - компилируется и загружается (как отдельный проект ) на ура!!!
При проверки проекта сигнализации с модулем ИК Arduino IDE ВЫДАЕТ ОШИБКУ компиляции:
Arduino: 1.8.9 (Windows 10), Плата:"Arduino/Genuino Uno"
Tone.cpp.o (symbol from plugin): In function `timer0_pin_port':
(.text+0x0): multiple definition of `__vector_7'
libraries\IRremote\IRremote.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
Несколько библиотек найдено для "IRremote.h"
Используется: c:\Program Files (x86)\FLProg\ideV3\portable\sketchbook\libraries\IRremote
Не используется: c:\Program Files (x86)\FLProg\ideV3\libraries\IRremote
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
==================================================================
Явно проблема с библиотеками.Не могу разобраться.Что делать?Подскажите...
Две разные библиотеки хотя обрабатывать одно и то же прерывание. Разводите по разным.
Две разные библиотеки хотя обрабатывать одно и то же прерывание. Разводите по разным.
Подскажите как это сделать,если не секрет...
Подскажите как это сделать,если не секрет...
Это-то не секрет. Секрет - это Ваш скетч и библиотеки, которые он использует.
Вот как Вы себе видите подсказку с моей стороны? Давайте я попробую.
У Вас происходит конфликт за вектор __vector_7 (TIMER2_COMPA_vect) между библиотеками ХЗ и ХЗ. Можно поправить в библиотеке ХЗ строку №ХЗ или же вместо библиотеки ХЗ использовать другую, которой этот вектор не нужен.
Помогло?
Спасибо,буду разбираться.Дело в том, что я пользуюсь программой FLProg (своего рода графический программатор).FLProg сама составляет скетч и запускает Arduino IDE.Получается конфликт библиотек! У FLProg есть библиотека IRremote и Arduino IDE такая же.
...Несколько библиотек найдено для "IRremote.h"
Может отдельно установить Arduino IDE и написанный скетч программой FLProg вводить в нее?
В написании программ на языке С++ (командами) мне еще далеко. Так получиться или нет?
Заранее спасибо.
В том, что "Несколько библиотек найдено для "IRremote.h"" нет ничего страшного. Вас просто предупредили об этом и сказали какая именно будет использоваться.
А пихать флпроговский код в IDE, ну попробуйте. Я бы запихал, но я бы и не писал в флпроге. А сумеете ли Вы, откуда ж мне знать?
Евгений
Проблема кажется в том, что ИК и Буззер используют один таймер, и вместе не работают.Как только убрал пищалку, то пошла "массовка" все загрузилось.
Подскажите как это сделать,если не секрет...
Это-то не секрет. Секрет - это Ваш скетч и библиотеки, которые он использует.
Вот как Вы себе видите подсказку с моей стороны? Давайте я попробую.
У Вас происходит конфликт за вектор __vector_7 (TIMER2_COMPA_vect) между библиотеками ХЗ и ХЗ. Можно поправить в библиотеке ХЗ строку №ХЗ или же вместо библиотеки ХЗ использовать другую, которой этот вектор не нужен.
Помогло?
Народ подсказывает, что лучше отказаться от пассивного буззера, использовать активный (меньше гемора).
Ну или идти в библиотеку IRremote, в файле boarddefs, за комментировать строку (//)#define IR_USE_TIMER2
и снять кометы с строки выше #define IR_USE_TIMER1
Я поменял, но не помогло с изменением библиотеки.
В написании программ на языке С++ (командами) мне еще далеко. Так получиться или нет?
Тут смотря зачем вам это? Просто по баловаться - и flprog хватит. Хотите мк заняться - бегите от flprog и учите языки программирования (Си в частности).
Или можно бузер пересадить на пин, который шимится другим таймером. Но, активный спикер - киллер-фича.
Народ подсказывает, что лучше отказаться от пассивного буззера, использовать активный (меньше гемора).
Ну или идти в библиотеку IRremote, в файле boarddefs, за комментировать строку (//)#define IR_USE_TIMER2
и снять кометы с строки выше #define IR_USE_TIMER1
Я поменял, но не помогло с изменением библиотеки.
А это потому что сам не понимаешь что делаешь.
Не понимаю не спорю, поэтому и полез в Песочница. Раздел для новичков
Вместо того, чтобы указывать на мою бестолковость подсказал бы что-будь путное...Посмотри начала моего сообщения...
просто купи активный буззер, и не имей нам мосх. тока полярность не перепутай.
просто купи активный буззер, и не имей нам мосх. тока полярность не перепутай.
Я так и сделал.Спасибо за участие.