Страница 1 из 1

Блок Телеграм не дружит с штатным блоком дисплея HD44780

Добавлено: 14 фев 2021, 17:34
Serg_Grn
Добрый день.
В проекте нет ничего кроме двух блоков - штатного для дисплея HD44780 и блока для Телеграм.
Блок для Телеграм сделан на основе библиотеки UniversalTelegramBot.h и сам по себе, и в комбинации с кучей других блоков и библиотек, работает безукоризненно.
Но тут, видимо, какой-то конфликт двух библиотек возникает или что... Ошибка при компиляции: lvalue required as left operand of assignment.
Моих знаний недостаточно чтоб разобраться самому :smile37:
Проект прикладываю.
Спасибо!
1.flp
Отправлено спустя 1 минуту 16 секунд:
Похоже я решил проблему, но в чём она заключается так и не понял :D Кто понимает, пролейте свет :)
Я переименовал переменную En в блоке телеграм, на которую ругался компилятор, и компиляция прошла успешно. :smile37:

Блок Телеграм не дружит с штатным блоком дисплея HD44780

Добавлено: 14 фев 2021, 18:08
ecoins
Serg_Grn писал(а): 14 фев 2021, 17:34 Похоже я решил проблему, но в чём она заключается так и не понял Кто понимает, пролейте свет
Я переименовал переменную En в блоке телеграм, на которую ругался компилятор, и компиляция прошла успешно.
В штатной библиотеке легкомысленно используется
#define En (и не только). Возникает конфликт.
-----
Это системная проблема библиотек Arduino - имена макроопределений (а они глобальные) применяются разработчиками свободно, какие-то соглашения по их использованию отсутствуют.
В свое время мы столкнулись именно с этой проблемой с этой библиотекой и потому в своих библиотеках в макроопределениях применяем собственный префикс RT_HW_ в надежде, что он никем использован не будет :no:

Блок Телеграм не дружит с штатным блоком дисплея HD44780

Добавлено: 14 фев 2021, 18:18
Serg_Grn
[ref]ecoins[/ref], спасибо за пояснение! :)