Arduino IDE .Ошибки компиляции.

Spyro
Offline
Зарегистрирован: 13.08.2019
Помогите убогому, пожалуйста!
Проблема: Собрана и проверена схема сигнализации (компилируется и загружается).При введении в схему сигнализации модуля ИК с пультом дистанционного управления, не проходит компиляция. Схема ИК модуля отдельно без изменений из проекта сигнализации - компилируется и загружается (как отдельный проект ) на ура!!!
При проверки проекта сигнализации с модулем ИК 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.
 
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
==================================================================
Явно проблема с библиотеками.Не могу разобраться.Что делать?Подскажите...
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Две разные библиотеки хотя обрабатывать одно и то же прерывание. Разводите по разным.

Spyro
Offline
Зарегистрирован: 13.08.2019

ЕвгенийП пишет:

Две разные библиотеки хотя обрабатывать одно и то же прерывание. Разводите по разным.

Подскажите как это сделать,если не секрет...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Spyro пишет:

Подскажите как это сделать,если не секрет...

Это-то не секрет. Секрет - это Ваш скетч и библиотеки, которые он использует.

Вот как Вы себе видите подсказку с моей стороны? Давайте я попробую.

У Вас происходит конфликт за вектор __vector_7 (TIMER2_COMPA_vect) между библиотеками ХЗ и ХЗ. Можно поправить в библиотеке ХЗ строку №ХЗ или же вместо библиотеки ХЗ использовать другую, которой этот вектор не нужен.

Помогло?

Spyro
Offline
Зарегистрирован: 13.08.2019

Спасибо,буду разбираться.Дело в том, что я пользуюсь программой FLProg (своего рода графический программатор).FLProg сама составляет скетч и запускает Arduino IDE.Получается конфликт библиотек! У FLProg есть библиотека IRremote и Arduino IDE такая же.

...Несколько библиотек найдено для "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...

Может отдельно установить Arduino IDE и написанный скетч программой FLProg вводить в нее?

В написании программ на языке С++ (командами) мне еще далеко. Так получиться или нет?

Заранее спасибо.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

В том, что "Несколько библиотек найдено для "IRremote.h"" нет ничего страшного. Вас просто предупредили об этом и сказали какая именно будет использоваться.

А пихать флпроговский  код в IDE, ну попробуйте. Я бы запихал, но я бы и не писал в флпроге. А сумеете ли Вы, откуда ж мне знать?

Spyro
Offline
Зарегистрирован: 13.08.2019

Евгений

Проблема кажется в том, что ИК и Буззер используют один таймер, и вместе не работают.Как только убрал пищалку, то пошла "массовка" все загрузилось.

Spyro
Offline
Зарегистрирован: 13.08.2019

ЕвгенийП пишет:

Spyro пишет:

Подскажите как это сделать,если не секрет...

Это-то не секрет. Секрет - это Ваш скетч и библиотеки, которые он использует.

Вот как Вы себе видите подсказку с моей стороны? Давайте я попробую.

У Вас происходит конфликт за вектор __vector_7 (TIMER2_COMPA_vect) между библиотеками ХЗ и ХЗ. Можно поправить в библиотеке ХЗ строку №ХЗ или же вместо библиотеки ХЗ использовать другую, которой этот вектор не нужен.

Помогло?

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

Ну или идти в библиотеку IRremote, в файле boarddefs, за комментировать строку (//)#define IR_USE_TIMER2

и снять кометы с строки выше #define IR_USE_TIMER1

Я поменял, но не помогло с изменением библиотеки.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Spyro пишет:

В написании программ на языке С++ (командами) мне еще далеко. Так получиться или нет?

Тут смотря зачем вам это? Просто по баловаться - и flprog хватит. Хотите мк заняться - бегите от flprog и учите языки программирования (Си в частности). 

sadman41
Offline
Зарегистрирован: 19.10.2016

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

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Spyro пишет:

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

Ну или идти в библиотеку IRremote, в файле boarddefs, за комментировать строку (//)#define IR_USE_TIMER2

и снять кометы с строки выше #define IR_USE_TIMER1

Я поменял, но не помогло с изменением библиотеки.

А это потому что сам не понимаешь что делаешь. 

Spyro
Offline
Зарегистрирован: 13.08.2019

Не понимаю не спорю, поэтому и полез в Песочница. Раздел для новичков

Вместо того, чтобы указывать на мою бестолковость подсказал бы что-будь путное...Посмотри начала моего сообщения...

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

просто купи активный буззер, и не имей нам мосх.  тока полярность не перепутай. 

Spyro
Offline
Зарегистрирован: 13.08.2019

DetSimen пишет:

просто купи активный буззер, и не имей нам мосх.  тока полярность не перепутай. 

Я так и сделал.Спасибо за участие.