Marlin: Encoder-Funktion hängt von ULTIPANEL-Definition ab

Erstellt am 7. März 2017  ·  4Kommentare  ·  Quelle: MarlinFirmware/Marlin

Ich implementiere derzeit die Unterstützung für den TinyBoy2-Drucker und wurde von einem nicht funktionierenden Encoder erwischt.

Der Tinyboy verwendet ein eigenes kleines Display/Encoder-Board, das eigentlich nur ein SSD1306 128x64 OLED-Display ist, das über I2C angeschlossen ist, und einen Drehgeber mit drei GPIOs für ENCA/ENCB/ENC_Button.

Obwohl das Aktivieren der Anzeige einfach war (#define U8GLIB_SSD1306), erfordert die Encoder-Unterstützung #define ULTIPANEL.

Hilfreichster Kommentar

Sorry, aber das ist nicht gelöst:
https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration.h#L1328
// ULTIPANEL wie auf Thingiverse zu sehen.

Für die generische Encoder-Unterstützung ist kein Hinweis erforderlich.

Alle 4 Kommentare

In Conditionals_LCD.h ,

  // Generic support for SSD1306 / SH1106 OLED based LCDs.
  #if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
    #define ULTRA_LCD  //general LCD support, also 16x2
    #define DOGLCD  // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
  #endif

Ändern Sie dazu:

  // Generic support for SSD1306 / SH1106 OLED based LCDs.
  #if ENABLED(U8GLIB_SSD1306) || ENABLED(U8GLIB_SH1106)
    #define ULTIPANEL // To enable encoder support
    #define ULTRA_LCD  //general LCD support, also 16x2
    #define DOGLCD  // Support for I2C LCD 128x64 (Controller SSD1306 / SH1106 graphic Display Family)
  #endif

Es sollte für jeden mit einem U8GLIB_SSD1306 oder U8GLIB_SH1106 funktionieren.

Die SSD1306 ist ein LCD/OLED, also an sich nur ein Display. Ein Panel ist sowohl Display als auch Eingänge (Drehgeber oder Cursortasten).

Hier geht es nicht darum, wie es funktioniert (setzen Sie einfach #define ULTIPANEL in Configuration.h), sondern die fehlende Dokumentation, die besagt, dass ULTIPANEL für den funktionierenden Encoder erforderlich ist.

Sorry, aber das ist nicht gelöst:
https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/Configuration.h#L1328
// ULTIPANEL wie auf Thingiverse zu sehen.

Für die generische Encoder-Unterstützung ist kein Hinweis erforderlich.

ULTIPANEL wird hoffentlich für alle relevanten Panels in Conditionals_LCD.h automatisch gesetzt.

ULTIPANEL war das erste Panel, das einen Encoder unterstützte. Name und Code werden immer wieder verwendet.

Wenn Sie also ein neues Panel mit Encoder integrieren möchten, erstellen Sie einen neuen Abschnitt in Conditionals_LCD.h und definieren Sie ULTIPANEL. Configuration.h und die Kommentare hierin sind für den Gebrauch bestimmt. Entwickler, die ein neues Panel integrieren, müssen etwas tiefer graben.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen