Почему не работает код
- Войдите на сайт для отправки комментариев
Сб, 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 библиотки попробовал, везде одно и тоже.