• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Не работают библиотеки на основе IRrecv.h

Народ, с пол года, а то и почти год не занимался программированием. Последний проект делал в январе прошлого года и использовал приемник ИК для работы с ТВ пультами.
Сейчас решил поработать с ESP32. Взял плату DOIT ESP32 DEVKIT V1. Все прекрасно. Состыковал со всеми датчиками, по I2C подключил Attiny85 (портов не хватает). И вот решил подключить приемник ИК. Беру старые библиотеки, а они не работают. Я думал может в коде что. Беру пустой код и всего лишь делаю #include <IRrecv.h>. В среде Arduino IDE задаю проверку кода и выдает ошибки:
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In function 'void gpio_intr()':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:246:3: error: 'timerAlarmEnable' was not declared in this scope; did you mean 'timerAlarm'?
246 | timerAlarmEnable(timer);
| ^~~~~~~~~~~~~~~~
| timerAlarm
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In member function 'void IRrecv::enableIRIn(bool)':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:362:21: error: too many arguments to function 'hw_timer_t* timerBegin(uint32_t)'
362 | timer = timerBegin(_timer_num, 80, true);
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal.h:98,
from C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/Arduino.h:36,
from C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.h:10,
from C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:6:
C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal-timer.h:35:13: note: declared here
35 | hw_timer_t *timerBegin(uint32_t frequency);
| ^~~~~~~~~~
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:371:3: error: 'timerAlarmWrite' was not declared in this scope; did you mean 'timerWrite'?
371 | timerAlarmWrite(timer, MS_TO_USEC(params.timeout), ONCE);
| ^~~~~~~~~~~~~~~
| timerWrite
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:375:23: error: too many arguments to function 'void timerAttachInterrupt(hw_timer_t*, void (*)())'
375 | timerAttachInterrupt(timer, &read_timeout, false);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\cores\esp32/esp32-hal-timer.h:50:6: note: declared here
50 | void timerAttachInterrupt(hw_timer_t *timer, void (*userFunc)(void));
| ^~~~~~~~~~~~~~~~~~~~
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In member function 'void IRrecv::disableIRIn()':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:401:3: error: 'timerAlarmDisable' was not declared in this scope
401 | timerAlarmDisable(timer);
| ^~~~~~~~~~~~~~~~~
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp: In member function 'void IRrecv::resume()':
C:\Users\dimon\Documents\Arduino\libraries\IRremoteESP8266-2.8.4\src\IRrecv.cpp:428:3: error: 'timerAlarmDisable' was not declared in this scope
428 | timerAlarmDisable(timer);
| ^~~~~~~~~~~~~~~~~
Multiple libraries were found for "WiFi.h"
Used: C:\Users\dimon\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.1.1\libraries\WiFi
Not used: C:\Users\dimon\Documents\Arduino\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Error compiling for board DOIT ESP32 DEVKIT V1.
Где-то вычитал на буржуйских сайтах, мол комментируй эти места и все ОК. Будет. Закомментировал, все скомпелилось, но ИК не работает.
Пытался более новые версии качать, такая же фигня. И не могу найти ни одну библиотеку для ИК приемника, которая бы работала.
 
Вопрос решил. Поковырялся на GitHub. Там конечно сложно разобраться, но нашел исправления кода для библиотеки, с которыми все заработало.
 
Сверху Снизу