Подключение ЖК-дисплея OLED 128x64; dogm_lcd_implementation.h отсутствует для исправления

Я пытаюсь установить MKS 12864 0.96 OLED для своего 3D-принтера DIY (см. Этот другой вопрос).

Он не указан в разделе конфигурации ЖК-дисплея Marlin.h, и в соответствии с некоторыми инструкциями мне нужно внести некоторые изменения в файл с именем dogm_lcd_implementation.h, который отсутствует в Marlin 1.1.9!

Где это? Как я могу установить свой ЖК-модуль?

, 👍4


1 ответ


4

История вопросов

В ответе на ваш предыдущий вопрос обсуждаются исправления для установки ЖК-модуля в прошивку принтера Marlin. Обратите внимание, что эти исправления очень старые (около 2015 года). С тех пор многое изменилось (как там признается). Этот ответ не работает для последних версий исходного кода Marlin!

Ответ

Да, ваше замечание об отсутствии файла dogm_lcd_implementation.h в версии 1.1.9 Marlin верно. Но, я верю, что это не потеряно, весь код и дальнейшие разработки можно найти в ultralcd_impl_DOGM.h. Существуют некоторые более старые версии файла, доступные через Интернет, например, здесь или из этого старого клонированного репозитория Marlin.

Я считаю, что ваш 2 патч:

/*---------------MKS OLED patch_2-----------------------*/
#elif defined(U8GLIB_SSD1306)
U8GLIB_SSD1306_128X64 u8g(23, 17, 16, 25); // SW SPI Com: SCK = 23, MOSI = 17, CS = 16, A0 = 25
/*---------------MKS OLED patch_2-----------------------*/

должно быть помещено в ultralcd_impl_DOGM.h прямо под:

#elif ENABLED(MINIPANEL)
  // Дисплей мини-панели
  //U8GLIB_MINI12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 полосок
  U8GLIB_MINI12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4 полосы

и перед этим:

#else
  // для обычного дисплея DOGM128 с HW-SPI
  //U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 // 8 полос
  U8GLIB_DOGM128_2X u8g(DOGLCD_CS, DOGLCD_A0);  // HW-SPI Com: CS, A0 // 4 полосы
#endif

чтобы создать:

#elif ENABLED(MINIPANEL)
  // Дисплей мини-панели
  //U8GLIB_MINI12864 u8g(DOGLCD_CS, DOGLCD_A0); // 8 полосок
  U8GLIB_MINI12864_2X u8g(DOGLCD_CS, DOGLCD_A0); // 4 полосы
#elif ENABLED(U8GLIB_SSD1306)
  // SW SPI Com: SCK = 23, MOSI = 17, CS = 16, A0 = 25
  U8GLIB_SSD1306_128X64 u8g(23, 17, 16, 25); 
#else
  // для обычного дисплея DOGM128 с HW-SPI
  //U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 // 8 полос
  U8GLIB_DOGM128_2X u8g(DOGLCD_CS, DOGLCD_A0);  // HW-SPI Com: CS, A0 // 4 полосы
#endif

Обратите внимание, что уже существует запись для U8GLIB_SSD1306! Это должно быть удалено, или вам нужно поместить код в этот раздел (не комментируя существующий код)!

Напр.

#elif ENABLED(U8GLIB_SSD1306)
  // Универсальная поддержка ЖК-дисплеев SSD1306 OLED I2C
  //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 8 полос
  U8GLIB_SSD1306_128X64_2X u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 4 полосы

может быть изменено на:

#elif ENABLED(U8GLIB_SSD1306)
  // Универсальная поддержка ЖК-дисплеев SSD1306 OLED I2C
  //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 8 полос
  //U8GLIB_SSD1306_128X64_2X u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_FAST); // 4 полосы
  // SW SPI Com: SCK = 23, MOSI = 17, CS = 16, A0 = 25
  U8GLIB_SSD1306_128X64 u8g(23, 17, 16, 25);

,

В "ultralcd_impl_DOGM.h" есть несколько строк, где упоминается "U8GLIB_SSD1306"... Должен ли я раскомментировать их все или только ваш пример?, @2012User

с вашей новой инструкцией по исправлению 2 я получаю эту ошибку: #ошибка "Пожалуйста, выберите не более одного варианта ЖК-контроллера"., @2012User

@2012User Это может означать, что в вашем файле конфигурации включен другой ЖК-контроллер., @0scar

Я раскомментировал каждую строку в части конфигурации "выбор ЖК-дисплея/контроллера". h!, @2012User