Arduino Возвращает ошибку
- Войдите на сайт для отправки комментариев
Вс, 12/11/2017 - 14:06
#include "IRremote.h" const int Red=7; const int Yellow=10; const int Green=11; const int S=9; const int a=440; const int f=349; const int c=523; const int e= 659; const int F=698; const int gis=415; IRrecv irrecv(6); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(Red, OUTPUT); pinMode(Yellow, OUTPUT); pinMode(Green, OUTPUT); pinMode(S, OUTPUT); } void beep(int Fq, int time) { tone(S, Fq, time); delay(time + 20); } void loop() { if ( irrecv.decode( &results )) { switch (results.value) { case 0x14EB58A7: digitalWrite(Red, HIGH); digitalWrite(Yellow, LOW); digitalWrite(Green, LOW); break; case 0x14EB8877: digitalWrite(Red, LOW); digitalWrite(Yellow, HIGH); digitalWrite(Green, LOW); break; case 0x14EB906F: digitalWrite(Red, LOW); digitalWrite(Yellow, LOW); digitalWrite(Green, HIGH); break; case 0x14EBD827: digitalWrite(Red, LOW); digitalWrite(Yellow, HIGH); digitalWrite(Green, HIGH); break; case 0x14EB48B7: digitalWrite(Red, HIGH); digitalWrite(Yellow, LOW); digitalWrite(Green, HIGH); break; case 0x14EB50AF: digitalWrite(Red, HIGH); digitalWrite(Yellow, HIGH); digitalWrite(Green, LOW); break; case 0x14EB18E7: digitalWrite(Red, HIGH); digitalWrite(Yellow, HIGH); digitalWrite(Green, HIGH); break; case 0x14EBA857: digitalWrite(Red, LOW); digitalWrite(Yellow, LOW); digitalWrite(Green, LOW); break; case 0x14EB9867: beep(a, 100); break; } Serial.println( results.value, HEX ); irrecv.resume(); } }
Сделала код. Без последнего case, вполне рабочий, но с его добавлением начинается лажа
Arduino: 1.8.5 (Windows 7), Плата:"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 exit status 1 Ошибка компиляции для платы Arduino/Genuino Uno.
Пробовала ставить просто tone();, вместо всей этой лабуды, но результат тот же. Может у библиотеки IRremote, какие-то конфликты с этой коммандой?
Я прогуглила и нашла, что у этой библиотеки "аллергия" на tone();. Статья англоязычная, гугл не переводит из-за обилия сокращений. Помогите, кто шарит
и нахрена темы плодить про одно и то же?
Похоже. что да. Судя по описанию, и tone и IRremote используют таймер2
Я прогуглила и нашла, что у этой библиотеки "аллергия" на tone();. Статья англоязычная, гугл не переводит из-за обилия сокращений. Помогите, кто шарит
так ссылку дали бы. Тут есть такие, представляете!!!! - что и без гугля прочитать могут :)
и нахрена темы плодить про одно и то же?
там было про switch - а тут про tone ! - разница :)
Автору - если серьезно - надо было спрашивать в старой теме,
Нашла
http://arduino.ru/forum/programmirovanie/konflikt-bibliotek-tone-i-iremote
http://arduino.ru/forum/programmirovanie/motor-shield-v3-podklyuchenie-t...