Pinned SSD1306 OLED Display

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • hueppi114 wrote:

      in der .lib Datei steht es so:


      _lcd_init_data:
      .db &H78, &HAE ; DISPLAYOFF
      .db &HD5, &H80 ; SETDISPLAYCLOCKDIV , ratio 0x80
      .db &H00, &H3F ; SETMULTIPLEX , 1f 128x32
      .db &HD3, &H00 ; SETDISPLAYOFFSET , 00
      .db &H40, &H8D ; SETSTARTLINE , CHARGEPUMP
      .db &H14, &H20 ; vccstate 14 , MEMORYMODE
      .DB &H00, &HA1 ; A0 upside down SEGREMAP
      .db &HC8, &HDA ; COMSCANDEC , SETCOMPINS
      .db &H12, &H81 ; 02 128x32 12 , SETCONTRAST
      .db &HA, &HD9 ; constrast value 255, SETPRECHARGE,
      .db &HF1, &HD8 ; vccstate f1 , SETVCOMDETECT
      .db &H40, &HA4 ; &H40 , DISPLAYALLON_RESUME
      .db &HA6, &HAF ; NORMALDISPLAY


      es steht zwar noch "contrast value 255", aber vorne habe ich den Wert auf "HA", also 10 gesetzt, und damit wird das Display um einiges dunkler.
      ich kann nicht mit allen Befehlen was anfangen, z.B. nicht, was ".db " heißt.....
      Ob ich das im Laufe des Programmes einfach wiederholen kann? Wie geschrieben, hat das mit dem I2C-Befehlen zu Fuß nicht funktioniert
      Hallo jueppi,

      Du Hast dem Wert auf D9 gesetzt also 217. &H sagt dem Compiler, er bekommt die Werte Hexadezimal! Die folgenden 2 Zeichen bilden den Wert.

      mit .db werden Daten Daten direkt im Rom abgelegt. Eine reine Datensammlung ohne Funktion. In Bascom vergleichbar DATA (siehe Bascom Hilfe)
      Wobei der Font Editor die gleiche Schreibweise verwendet.

      .db steht für DatenByte es folgen hier je 2 Byte durch Komma getrennt und nach dem Semikolon ein Komentar (semikolen in der lib = Hochkomma in Bascom)
    • Ich habe folgendes Problem:
      Anzeige SSD1306 Größe: 0,91 zoll OLED Auflösung: 128x32 IIC.
      Wenn ich sie mit dem Beispielprogamm SSD1306-I2C.BAS von MSC ansteuere ist bei der Schrift Font8x8tt.font diese so klein, daß man sie nicht lesen kann.
      Wenn ich eine größere Schriftart nehme z.B. My12_16.font dann sieht man, daß die Zeichen nur in halber Höhe dargestellt werden:
      Die Zeichen dieser Schriftart sind z.B. 14 Pixel hoch, angezeigt werden aber nur 7. Daraus schließe ich, daß nur jede zweite Zeile angezeigt wird.
      Hat jemand eine Idee ?

      $regfile = "m32def.dat"
      $crystal = 8000000
      $hwstack = 40
      $swstack = 40
      $framesize = 60

      Config Scl = Portc.0 'Konfigurieren von I2C an K20
      Config Sda = Portc.1
      Config Twi = 400000 ' i2c speed
      waitms 200

      I2cinit
      $lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
      $lib "glcdSSD1306-I2C.lib" ' override the default lib with this special one

      #if _build < 20784
      Dim ___lcdrow As Byte , ___lcdcol As Byte ' dim these for older compiler versions
      #endif

      Config Graphlcd = Custom , Cols = 128 , Rows = 32 , Lcdname = "SSD1306"
      Cls
      'Setfont Font8x8tt ' select font
      Setfont My12_16

      Lcdat 1 , 1 , "BASCOM-AVR"
      Lcdat 4 , 1 , "1995-2015"

      End

      '$include "font8x8TT.font" ' this is a true type font with variable spacing
      $include "my12_16.font"
      Files
      • SSD1306.JPG

        (77.41 kB, downloaded 8 times, last: )