Sorry ich, es sollte natürlich H81 sein
SSD1306 OLED Display
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.
Hinweis kann nach Kenntnisnahme deaktiviert werden!
-
-
hueppi114 schrieb:
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
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) -
Hallo zusammen
Gibt es ein Problem beim Einsatz der OLED-Library mit ATmega2560? Ich kriege da nichts aufs Display ...
Benutze D.0 als SCL und D.1 als SDA.
Danke für Tipps!
Thomas -
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" -
-
17b schrieb:
Hinweis auf eine fehlenden Font
Beim Include, dann stimmt der Pfad nicht. Ohne Pfadangabe wird sie im selben Verzeichniss wie der Quellcode erwachtet. -
-
-
elektrolyst schrieb:
Hat jemand eine Idee ?
17b schrieb:
Gibt es Befehle um Zeichen zu invertieren oder Zeilen zu scrollen. Kann man Sonderzeichen definieren?
-
-
Ich hab ein bischen gebastelt:
Quellcode
- I2cstart
- I2cwbyte $78 'Adresse
- I2cwbyte 128 'Vor jedem Befehl nötig
- I2cwbyte $26 'Scroll Horizontal Rechts
- I2cwbyte 128
- I2cwbyte 0 'Dummy
- I2cwbyte 128
- I2cwbyte 0 'Startpage (0-6)
- I2cwbyte 128
- I2cwbyte 6 'Speed (0-7)
- I2cwbyte 128
- I2cwbyte 7 'Endpage (>Start-7)
- I2cwbyte 128
- I2cwbyte 0 'Dummy
- I2cwbyte 128
- I2cwbyte $FF 'Dummy
- I2cstop
Eingeleitet wird das Scrollen dann mit $2f und abgeschaltet mit $2E -
Ich habe mir jetzt einen Font mal kopiert und in der Kopie die Veränderungen, sprich Sonderzeichen, vorgenommen. Um Platz zu sparen habe ich #, $, % und & überschrieben die ich nicht brauche. Geht und wird auch im Oled Display dargestellt. Allerdings werden die Sonderzeichen weder nach Erstellung noch bei erneutem Aufruf des Font Editors in der Char Spalte dargestellt. Schade, so muss man an anderer Stelle wieder festhalten was man wo geändert hat. Aber immerhin geht es.
Ich habe heute noch ein 1.30" Display bekommen welches aber auf Anhieb nicht funktioniert. Ich habe mal 2x10k von SDA/SCK nach VDD gelötet und sie SSD1306 bzw SH1106 libs probiert , hat aber auch nichts gebracht. Hat jemand ne Idee bevor ich das wieder zurück schicke?
IMG_20200522_140623.jpg -
Der Font einen neuen Namen gegeben? Nicht das der Editor sich den alten genommen hat. Bei mir zeigt er die geänderten korrekt an.
Stimmt die Adresse? Mal den I2Cfinder drüberlaufen lassen. Ein 1306 ist es vermutlich nicht da der nur einen Adresspin hat. ($78 oder $7A) Ein SSH ist es vermutlich auch nicht, deren Platinen sehen anders aus (auch nur ein Adresslötpunkt) Vielleicht den Lieferanten fragen welcher Chip drinne ist -
Was ist ein I2C finder?
Das Modul sollte SH1106 kompatibel sein:
amazon.de/gp/product/B078J78R4…tle_o00_s00?ie=UTF8&psc=1 -
-
-
-
Wirre zeichen bei der seriellen ausgabe deutet auf falsche Baudrate/Parameter hin.
Entweder falsch eingestellt oder der Controller läuft mit anderem Takt als gedacht? -
-
17b schrieb:
Ist die nicht unabhängig vom Takt? Hab ich da was falsch verstanden?
Wenn die nicht mit der Wirklichkeit übereinstimmen, funktioniert's nicht.