Hallo,
ich habe ein Problem mit einem 1306-Oled-Display mit 1,3''. Es werden die letzten zwei Pixel ab ca. 1/4 nach unten des Displays (linkes Bild) nicht angesteuert. Mit einem 0,96'' (rechts) funktioniert die Anzeige ohne Fehler. Das Display ist in Ordnung, ein anderes zeigt den gleichen Fehler. Ich bin erst einmal mit meinem Latein am Ende. Kennt jemand das Problem?
Danke!
Gruß Udo
oled_096.jpgoled130.jpg
Alles anzeigen
ich habe ein Problem mit einem 1306-Oled-Display mit 1,3''. Es werden die letzten zwei Pixel ab ca. 1/4 nach unten des Displays (linkes Bild) nicht angesteuert. Mit einem 0,96'' (rechts) funktioniert die Anzeige ohne Fehler. Das Display ist in Ordnung, ein anderes zeigt den gleichen Fehler. Ich bin erst einmal mit meinem Latein am Ende. Kennt jemand das Problem?
Danke!
Gruß Udo
oled_096.jpgoled130.jpg
BASCOM-Quellcode: OLED Test
- 'Zahlenausgabe
- $regfile = "ATtiny85.DAT"
- $crystal = 16000000
- $hwstack = 40
- $swstack = 40
- $framesize = 80
- Dim Zahl As Word
- Dim Zahl1 As Word
- Dim Zs As String * 7
- Dim Zs1 As String * 7
- Config Scl = Portb.2 ' used i2c pins
- Config Sda = Portb.0
- Config I2cdelay = 1 'i2c speed 10 =100,5 = 200,2=500,1=1000
- I2cinit : Waitms 500
- $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 = 64 , Lcdname = "SSD1306"
- '-------------------------------- Program --------------------------------------
- 'LCD Init
- '***************************************************************************************************************
- I2cstart
- I2cwbyte &H78 'I2C Adresse
- I2cwbyte &H00 'SET DISPLAY STARTLINE, Kommand stream
- I2cwbyte &HAE 'DISPLAYOFF
- I2cwbyte &H3F 'Flip Display 180°
- I2cwbyte &HA0
- I2cwbyte &HC9
- I2cwbyte &HA0
- I2cwbyte &HA1
- 'I2cwbyte &HA8 'Flip Display 0°
- 'I2cwbyte &H3F
- 'I2cwbyte &HA0
- 'I2cwbyte &HC0
- 'I2cwbyte &HA0
- 'I2cwbyte &HA0
- 'I2cwbyte &HD5 'SET DISPLAY CLOCKDIV
- 'I2cwbyte &H80 'DISPLAY RATIO '80
- 'I2cwbyte &H1F 'DISPLAY 1/32 DUTY
- 'I2cwbyte &H22 'HORIZONTAL MODE 20
- 'I2cwbyte &B00000000 'Page start Address, range
- 'I2cwbyte &B00000111
- 'I2cwbyte &H40 'DISPLAY START AT 0
- 'I2cwbyte &HA1 'REMAP 0-127
- 'I2cwbyte &HA0 'Display up/Down A0 o Down A8
- 'I2cwbyte &HC0 'SCAN DIRECTION C8 or C0
- 'I2cwbyte &HDA 'COM PINS
- 'I2cwbyte &H12 'COM PINS 10
- 'I2cwbyte &HA4 ' DISPLAY ON
- 'I2cwbyte &HA7 '$A6=NORMAL MODE;$A7=INVERSE MODE
- 'I2cwbyte &HD9 'set precharge period D9
- 'I2cwbyte &H22 '$22 - External, $F1 - Internal
- 'I2cwbyte &HDB 'vcomh deselect level
- 'I2cwbyte &H20 'MEMORYMODE
- 'I2cwbyte &H00 'horizontal addr mode
- 'I2cwbyte &H8D 'enable charge pump
- 'I2cwbyte &H14 'at 14h = 20d
- I2cwbyte &H81 '10000001 Set contrast
- I2cwbyte &HFF '01111111 7F (01-FF)
- I2cwbyte &HAF ' DISPLAY ON HAE = off
- Waitms 50
- I2cstop
- '****************************************************************************************************************
- Declare Sub Lcd_schreibe()
- Wait 1
- Cls
- Setfont Font16x16
- Lcdat 1 , 1 , "SSD1306 "
- Lcdat 3 , 1 , " "
- Lcdat 5 , 1 , " "
- Lcdat 7 , 1 , "Font 16x" , 1
- Do
- Zahl = Rnd(65000)
- Zahl1 = Zahl1 - Zahl
- Zs = Str(zahl)
- Zs = Format(zs , "000.00")
- Zs1 = Str(zahl1)
- Zs1 = Format(zs1 , "000.00")
- Call Lcd_schreibe()
- 'Wait 3
- Loop
- End
- '===============================================================================
- $include "font16x16.font"
- Sub Lcd_schreibe()
- ' Lcdat 3 , 1 , " "
- Lcdat 3 , 15 , Zs
- 'Lcdat 5 , 1 , " "
- Lcdat 5 , 15 , Zs1
- Waitms 500
- End Sub
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Udo01 ()