ssilver2007 / LCD_1602_RUS_ALL

Библиотека поддержки кириллицы для дисплеев на базе контроллера HD44780 без встроенной кириллицы. Подключение дисплея как напрямую (10-контактное), так и по интерфейсу I2C.
GNU General Public License v3.0
61 stars 11 forks source link

Please add support ESP32 #7

Closed Apkawa closed 3 years ago

Apkawa commented 3 years ago

https://github.com/ssilver2007/LCD_1602_RUS_ALL/blob/061051a43a00e3b6520c76ac6b1b284132a9e23b/LCD_1602_RUS_ALL.h#L16

#if defined(ESP8266) || defined(ESP32)
  #include <pgmspace.h>
#endif
ssilver2007 commented 3 years ago

Принято. Поправлю.

ср, 16 дек. 2020 г., 13:23 Apkawa notifications@github.com:

https://github.com/ssilver2007/LCD_1602_RUS_ALL/blob/061051a43a00e3b6520c76ac6b1b284132a9e23b/LCD_1602_RUS_ALL.h#L16

if defined(ESP8266) || defined(ESP32)

include

endif

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZJRDTIPJUC6KUM57TDSVCDCDANCNFSM4U5XVX7Q .

aidarishkulov commented 3 years ago

Ошибка компиляции ESP8266 Nodemcu. Arduino Ide 1.8.13, пример HelloWorld_I2C: In file included from ...........\libraries\LCD_1602_RUS_ALL\examples\HelloWorld_I2C\HelloWorld_I2C.ino:6:0: ..............\libraries\LCD_1602_RUS_ALL/LCD_1602_RUS_ALL.h: In instantiation of 'LCD_1602_RUS::LCD_1602_RUS(uint8_t, uint8_t, uint8_t, uint8_t) [with BASE = LiquidCrystal_I2C; uint8_t = unsigned char]': ...................\libraries\LCD_1602_RUS_ALL\examples\HelloWorld_I2C\HelloWorld_I2C.ino:8:49: required from here ..................\libraries\LCD_1602_RUS_ALL/LCD_1602_RUS_ALL.h:73:142: error: invalid initializer for array member 'Symbol LCD_1602_RUS::font [53]' LCD_1602_RUS (uint8_t lcd_Addr, uint8_t lcd_cols, uint8_t lcd_rows, uint8_t user_custom_symbols = 0) : BASE (lcd_Addr, lcd_cols, lcd_rows)//Конструктор для подключения I2C ^

aidarishkulov commented 3 years ago

Это не нужно:

ifdef FDB_LIQUID_CRYSTAL_I2C_H

void init()
{
  begin();
}

endif

ssilver2007 commented 3 years ago

Для ESP есть другая либа. ESP_LCD_1602_RUS

ср, 16 дек. 2020 г., 19:07 aidarishkulov notifications@github.com:

Ошибка компиляции ESP8266 Nodemcu. Arduino Ide 1.8.13, пример HelloWorld_I2C^ In file included from C:\Arduino\FLProg\FLProg_7-2-2\ideV6\portable\sketchbook\libraries\LCD_1602_RUS_ALL\examples\HelloWorld_I2C\HelloWorld_I2C.ino:6:0: C:\Arduino\FLProg\FLProg_7-2-2\ideV6\portable\sketchbook\libraries\LCD_1602_RUS_ALL/LCD_1602_RUS_ALL.h: In instantiation of 'LCD_1602_RUS::LCD_1602_RUS(uint8_t, uint8_t, uint8_t, uint8_t) [with BASE = LiquidCrystal_I2C; uint8_t = unsigned char]': C:\Arduino\FLProg\FLProg_7-2-2\ideV6\portable\sketchbook\libraries\LCD_1602_RUS_ALL\examples\HelloWorld_I2C\HelloWorld_I2C.ino:8:49: required from here C:\Arduino\FLProg\FLProg_7-2-2\ideV6\portable\sketchbook\libraries\LCD_1602_RUS_ALL/LCD_1602_RUS_ALL.h:73:142: error: invalid initializer for array member 'Symbol LCD_1602_RUS::font [53]' LCD_1602_RUS (uint8_t lcd_Addr, uint8_t lcd_cols, uint8_t lcd_rows, uint8_t user_custom_symbols = 0) : BASE (lcd_Addr, lcd_cols, lcd_rows)//Конструктор для подключения I2C ^

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7#issuecomment-746546799, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZJGSHE57WHBOLILPF3SVDLNRANCNFSM4U5XVX7Q .

aidarishkulov commented 3 years ago

Это понятно, она работает, но эта же тоже и ESP8266 должна поддерживать .

ssilver2007 commented 3 years ago

Это нужно для работы со всеми библиотеками LiquidCrystal_i2c. В других либах функции инициализации названы по другому. Где то init(), где-то begin()

ср, 16 дек. 2020 г., 19:38 aidarishkulov notifications@github.com:

Это понятно, она работает, но эта же тоже и ESP8266 должна поддерживать .

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7#issuecomment-746599490, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZJAQ3YBV75JE5DV3HDSVDO7XANCNFSM4U5XVX7Q .

aidarishkulov commented 3 years ago

Интересно, что на ESP32 компилируется и запускается нормально, проверил на железе. С ESP8266, если разобраться, то отличная библиотека будет!

ssilver2007 commented 3 years ago

Надо сначала ESP8266_LCD_1602_RUS отработать, а затем уже изменения вписывать в общую библиотеку. Сразу в общей писать не хочу, труднее ловить ошибки.

ср, 16 дек. 2020 г. в 20:03, aidarishkulov notifications@github.com:

Интересно, что на ESP32 компилируется и запускается нормально, проверил на железе. С ESP8266, если разобраться, то отличная библиотека будет!

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7#issuecomment-746641456, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZMVCTWS5D2YGQL5O7TSVDR6TANCNFSM4U5XVX7Q .

aidarishkulov commented 3 years ago

ESP8266_LCD_1602_RUS работает, на Nodemcu проверил. Строки #include И //Для ESP8266

ifdef FDB_LIQUID_CRYSTAL_I2C_H

if defined (ESP8266)

void init(uint8_t _sda = SDA, uint8_t _scl = SCL)
{
  Wire.pins(_sda, _scl);
  begin();
}

else

void init()
{
  begin();
}

endif

endif

не нужны, я их убрал, прекрасно работает. Они уже есть в плате, получается дублирование.

ssilver2007 commented 3 years ago

А теперь попробуйте удалить вашу стандартную библиотек Arduino_LiquidCrystal_I2C, и установить другую, напрмер https://github.com/johnrickman/LiquidCrystal_I2C. И все, без этих строк не будет компилироваться.

ср, 16 дек. 2020 г. в 20:56, aidarishkulov notifications@github.com:

ESP8266_LCD_1602_RUS работает, на Nodemcu проверил. Строки #include И //Для ESP8266

ifdef FDB_LIQUID_CRYSTAL_I2C_H

if defined (ESP8266)

void init(uint8_t _sda = SDA, uint8_t _scl = SCL) { Wire.pins(_sda, _scl); begin(); }

else

void init() { begin(); }

endif

endif

не нужны, я их убрал, прекрасно работает. Они уже есть, получается дублирование.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7#issuecomment-746729345, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZJBJS5Q5BMWTZUVP2DSVDYDLANCNFSM4U5XVX7Q .

aidarishkulov commented 3 years ago

Проверил на ESP32, все прекрасно работает. ЕСП8266 дает точно такую ошибку.

ssilver2007 commented 3 years ago

Скачайте еще раз: https://github.com/ssilver2007/ESP8266_LCD_1602_RUS Внес некоторые правки. У меня компилируется без ошибок и под ESP8266, и под ESP32. Давайте еще раз проверим, какие ошибки теперь у вас выдаются при компиляции.

ср, 16 дек. 2020 г. в 21:17, aidarishkulov notifications@github.com:

Проверил на ESP32, все прекрасно работает. ЕСП8266 дает точно такую ошибку.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7#issuecomment-746764240, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZJMDQ74SMRTUL53JFTSVD2VDANCNFSM4U5XVX7Q .

aidarishkulov commented 3 years ago

Эта библиотека работает нормально, я писал выше (Проверил на ESP32, все прекрасно работает. ЕСП8266 дает точно такую ошибку.) про LCD_1602_RUS_ALL

ssilver2007 commented 3 years ago

LCD_1602_RUS_ALL буду править потом, когда оттестируется ESP8266_LCD_1602_RUS. Если с последней проблем не будет, добавлю наработки в первую (общую) библиотеку.

ср, 16 дек. 2020 г. в 22:32, aidarishkulov notifications@github.com:

Эта библиотека работает нормально, я писал выше (Проверил на ESP32, все прекрасно работает. ЕСП8266 дает точно такую ошибку.) про LCD_1602_RUS_ALL

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ssilver2007/LCD_1602_RUS_ALL/issues/7#issuecomment-746885867, or unsubscribe https://github.com/notifications/unsubscribe-auth/AD5ORZPNVZ77GFZUZA3KGP3SVEDLTANCNFSM4U5XVX7Q .

Apkawa commented 3 years ago

Добрый вечер. Я изначально использовал эту библиотеку.

Чтобы не форкать и не патчить - я использовал вот такую заглушку

➜  esp32 git:(main) ✗ cat include/avr/pgmspace.h 
#ifndef ESP32_PGMSPACE_H
#define ESP32_PGMSPACE_H
// Костыль для LCD_1602_RUS_ALL
#include "pgmspace.h"

#endif //ESP32_PGMSPACE_H

Без неё она падает при сборке для ESP32:

.pio/libdeps/LiquidCrystal_I2C/LCD_1602_RUS_ALL/LCD_1602_RUS_ALL.h:16:26: fatal error: avr/pgmspace.h: No such file or directory
 #include <avr/pgmspace.h>
                          ^
compilation terminated.

для ESP8266 она собирается.

Edited: с последним коммитом теперь собирается ESP32, а для ESP8266 перестало собираться, на https://github.com/ssilver2007/LCD_1602_RUS_ALL/commit/0491ed1e4242003ec9364511e6e69a8b79de474e собирается под ESP8266

ssilver2007 commented 3 years ago

ESP8266_LCD_1602_RUS - версия полностью рабочая под ESP32 и ESP8266 Внес такие же правки в LCD_1602_RUS_ALL - под ESP32 работает, под ESP8266 выдает ошибку. Куда копать, не понимаю...

ssilver2007 commented 3 years ago

Убрал шаблоны. Теперь компилится и для ESP8266.