Forum: Mikrocontroller und Digitale Elektronik 0,96" OLED-Display SSD1306


von Bruno M. (brumay)


Lesenswert?

Hallo,
ich experimentiere z.Zt. mit diesen kleinen Displays und verwende dabei 
hauptsächlich den sehr hilfreichen Beitrag von Bernhard S. (von 2021).

Beitrag "DEBO OLED2 0.96 0,96" OLED-Display SSD1306 SSD1312 Initialisierung TWI I2C AVR ATmeg8 Assembler ASM"

Die von Bernhard vorgestellten Codes funktionieren bei mir auch alle 
problemlos, allerdings mit einem Haken.
Besonders deutlich zu sehen ist das bei der Version 1. Beim Aufbau des 
Bildes wird immer die oberste Zeile doppelt geschrieben und die unterste 
damit gar nicht. Ich kann das zwar ausgleichen, indem ich einfach eine 
weitere Zeile hinzufüge, aber das beseitigt ja nicht die Ursache.

Hat jemand einen Hinweis?

von Falk B. (falk)


Lesenswert?

Bruno M. schrieb:
> Die von Bernhard vorgestellten Codes funktionieren bei mir auch alle
> problemlos, allerdings mit einem Haken.

Welche denn GENAU? Gib uns mal einen Link direkt darauf oder stell den 
Quelltext hier als ANhang rein.

von Bruno M. (brumay)


Lesenswert?

Wie gesagt ist es insbesondere deutlich bei der Version 1 zu sehen.

https://www.mikrocontroller.net/attachment/489563/2021-01-18_V1.zip

Aber es wiederholt sich auch bei den anderen Versionen, nur ist es dort 
nicht so auffallend.

von Bruno M. (brumay)


Angehängte Dateien:

Lesenswert?

Hier deutlich zu sehen.

von Rainer W. (rawi)


Lesenswert?

Bruno M. schrieb:
> Hier deutlich zu sehen.

o.m.g.
Wie wäre es mit einem Photo, auf dem der Bildinhalt des OLED scharf 
abgebildet ist. Das PNG-Format hilft auch nicht, wenn die Aufnahme 
verhunzt ist. Nur weil es sich um ein Photo von einem Bildschirm 
handelt, wird daraus noch kein Screenshot im Sinne der Forenregeln.

Wichtige Regeln - erst lesen, dann posten!

Bitte das JPG-Format (nur) für Fotos und Scans verwenden!

von Falk B. (falk)


Lesenswert?

Bruno M. schrieb:
> Besonders deutlich zu sehen ist das bei der Version 1. Beim Aufbau des
> Bildes wird immer die oberste Zeile doppelt geschrieben und die unterste
> damit gar nicht.

Welches Bild? In der Software wird das OLED nur mit kompletten Pixeln 
0xFF vollgeschrieben. Keine Texte oder so.

> Ich kann das zwar ausgleichen, indem ich einfach eine
> weitere Zeile hinzufüge, aber das beseitigt ja nicht die Ursache.

Naja, der Verfasser der Software hat beim Thema Grundlagen von Assembler 
noch einiges nachzuholen. Die Software funtkioniert zwar irgendwie, aber 
das ist alles arg zusammengebastelt. Hier gibt es 
Verbesserungsvorschläge, wenn gleich für eine andere Software.

Beitrag "Re: ADS1115 Initialisierung ADC auslesen ATmega8 Assembler ASM"

In der speziell hier genannten Software sieht es so aus.
1
LOOP:
2
    wdr
3
    rcall PROGRAMM_CHECK
4
    rcall OLED_VOLL
5
    rcall WAIT_1s
6
    rcall OLED_CLEAR
7
    rcall WAIT_1s
8
rjmp LOOP

In OLED_VOLL wird am Anfang GO_HOME aufgerufen. Dort liegt vermutlich 
der Fehler, wobei eine falsche Anfangsandresse im Display gesetzt wird.

von Falk B. (falk)


Lesenswert?

In der Schaltung fehlen außerdem die Pull-Up Widerstände für SDA und 
SCL. Je einmal 3,3K oder ähnlich gegen 5V sollten reichen. Ist ein 
Wunder, daß es überhaupt funktioniert, vermutlich hat das OLED welche 
eingebaut.

: Bearbeitet durch User
von Bruno M. (brumay)


Lesenswert?

Falk B. schrieb:
> In OLED_VOLL wird am Anfang GO_HOME aufgerufen.

Volltreffer! Ich habe das GO_HOME mal komplett rausgenommen und jetzt 
paßt es!

Danke

von Falk B. (falk)


Lesenswert?

Bruno M. schrieb:
> Volltreffer! Ich habe das GO_HOME mal komplett rausgenommen und jetzt
> paßt es!

Ja, im Moment. Das passt nur, weil die Resetwerte der Register passen. 
Wenn man aber mal im Programmablauf die Funktion braucht, muss man sie 
reparieren. Man muss sich in die Adressierungsarten einlesen und die 
richtigen Einstellungen einstellen. Damit man dann auch mal gezielt an 
Stellen auf dem OLED schreiben kann, sprich den Cursor setzen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.