Srs,

   Esrtou com esse erro de compilação sõ adicionei a biblioteca IRremote, aparentemente conflitando com newping, saberia dizer como resolver?

Arduino: 1.5.7 (Windows 7), Placa:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Build options changed, rebuilding all
IRremote\IRremote.cpp.o: In function `__vector_13':
C:\Users\Amanda.Amanda-PC\Arduino\libraries\IRremote/IRremote.cpp:259: multiple definition of `__vector_13'
NewPing\NewPing.cpp.o:C:\Users\Amanda.Amanda-PC\Arduino\libraries\NewPing/NewPing.cpp:214: first defined here
/Arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld: Disabling relaxation: it will not work with multiple definitions
collect2: error: ld returned 1 exit status

Este relatório deveria ter mais informações
"Mostrar saída verbosa durante a compilação"
habilitado em Arquivo > Preferências.

Exibições: 1904

Responder esta

Respostas a este tópico

Olá Pablo.

A mensagem do erro diz que você tem duas definições para "__vector_13" . Uma no arquivo "IRremote.cpp" e outra no arquivo "NewPing.cpp".  Por curiosidade abra os dois arquivos e veja se os valores definidos para os mesmos são indênticos.

Caso sejam, experimente comentar "//" um deles e veja se o erro persiste.

Caso o erro persista, altere o nome de um deles, tipo "__vector_13_" , sendo por exemplo do IRremote, em todos os lugares que o "__vector_13" aparecer você deverá alterar para o novo nome.

Estamos no aguardo para saber se funcionou.

Espero ter ajudado. ^^

T++.

Daniel,

    Não funcionou! :( na verdade "__vector_13" não existe em nenhuma linha de código em nenhum dos arquivos (?).

:(

Anexos

 Olhando os arquivos percebi uma coisa, esse "__vector_13" está "disfarçado". rs

Ele na verdade é o protótipo para a interrupção do TIMER2.

No arquivo NewPing.cpp ele é o ISR(TIMER2_COMPA_vect) , e no IRremote.cpp ele é o "ISR(TIMER_INTR_NAME).

Talvez o caso seja você tentar modificar estes vetores de interrupção.  Em um dos arquivos você altera para outro timer. Mas precisa tomar o cuidado para verificar se o timer é compátivel com a sua aplicação. Desde a resolução dele como também a configuração. Para isto, verifique o datasheet do microcontrolador.

Outra opção é você escrever o seu próprio tratamento para a interrupção do timer, para poder controlar as duas bibliotecas em um mesmo vetor.

Espero ter ajudado. ^^

T++.

Vlw! ainda não domino a codificação para resolver, mas vou pesquisar! Obrigado Daniel!

tenta mudar o timer no arquivo o IRremoteInt

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço