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.
Tags:
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 (?).
:(
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!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por