Почему не работает код
- Войдите на сайт для отправки комментариев
Сб, 18/06/2016 - 14:44
Хочу чтобы при нажатии на кнопки пульта менялся звук на пьезоэлементе, но код почему-то не работает (ошибка компиляции). Библиотеку скачал отсюда https://new.vk.com/doc-71369845_323721844
#include <IRremote.h>
int RECV_PIN = 6; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
int p = 5;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // включить приемник
pinMode(p, OUTPUT);
}
void loop() {
if (irrecv.decode(&results))
{
Serial.println( results.value, HEX );
if (results.value == 0x4FBC03F || results.value == 0x753DBD10)
{
tone(p, 500);
delay(2000);
noTone(p);
}
if (results.value == 0x4FB827D || results.value == 0x2B345643)
{
tone(p, 1000);
delay(2000);
noTone(p);
}
irrecv.resume();
}
}
Если нужно могу скинуть код ошибки, но он какой-то длинный и непонятный (для меня).
Если нужно могу скинуть код ошибки, но он какой-то длинный и непонятный (для меня).
не нужно - у нас есть хрустальный шар.
Хрустальный шар вчера сломался, а телепаты ушли в отпуск.
Если нужно могу скинуть код ошибки, но он какой-то длинный и непонятный (для меня).
не нужно - у нас есть хрустальный шар.
Ну держите:
Похоже, что IRremote и Tone используют один и тот же таймер (точнее вектор прерывания TIMER2_COMPA_vect), поэтому вместе работать они не будут. Ну и одна библиотека IRremote лишняя.
в файле C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h не определен объект __vector_7
скорее всего или версия IDD не та или какая-то библиотека еще нужна для той...
в файле C:\Program Files (x86)\Arduino\libraries\IRremote\IRremote.h не определен объект __vector_7
Вообще-то наоборот - определён в обоих файлах. Там же multiple definition. Только __vector_7 спрятано где-то в хедерах ардуиновского ядра, а в указанных местах я нашёл двойное определение TIMER2_COMPA_vect.
Но это так, на мой дилетансткий взгляд. Если что, профи меня поправят.
Похоже, что IRremote и Tone используют один и тот же таймер (точнее вектор прерывания TIMER2_COMPA_vect), поэтому вместе работать они не будут. Ну и одна библиотека IRremote лишняя.
И что делать?
И что делать?
Разбираться с исходниками IRremote и Tone. С таймерами, которые они используют. Смотреть, есть ли возможность использования разных таймеров. Короче, сложно это.
И что делать?
Разбираться с исходниками IRremote и Tone. С таймерами, которые они используют. Смотреть, есть ли возможность использования разных таймеров. Короче, сложно это.
Ну блин... Вроде такое простое действие, а такие сложности, ладно, не получилось так не получилось.
И что делать?
не таскать из вконтакта гавно, а использовать нормальные библиотеки - там у тебя модифицированная под TIMER2 IRremote
И что делать?
не таскать из вконтакта гавно, а использовать нормальные библиотеки - там у тебя модифицированная под TIMER2 IRremote
Ну можешь тогда нормальную скинуть пожалуйста? Я уже 3 или 4 библиотки попробовал, везде одно и тоже.