oledssd1306 mit OLED-DISPLAY-MASTER zum Laufen bringen

Gast #7350760
Lesenswert?

Hi,

ich habe mir gedacht, ich könnte doch einfach mal anstatt Arduino zu verwenden den Atmega328p direkt programmieren.

Habe mehrere Bibliotheken gefunden. Z.B.:

https://github.com/Sylaina/oled-display

Ich habe diese geöffnet in VSC.

Wenn man dann make eintippt kommt aber ein Fehler:

1
main.c:4:21: Schwerwiegender Fehler: ssd1306.h: Datei oder Verzeichnis nicht gefunden
2
Kompilierung beendet.

Kommt also aus der main.c: #include "ssd1306.h"

Ich verstehe nicht wo diese ssd1306.h liegen soll.

Sollte die nicht in dem repository schon drin sein?

Danke

Gast #7350789
Lesenswert?

pegel schrieb:

#include "lcd.h"

steht im Beispiel drunter

ja sehe ich jetzt auch, dass dort gar nicht ssd1306.h vorkommt..

Aber wenn ich das ausführe funktioniert das Programm gar nicht richtig xD Habe bisher nur #define DISPLAY_WIDTH 128 #define DISPLAY_HEIGHT 32

angepasst.

Es sieht aber so aus als wären die Zeichen die ich gestern noch drin hatte immer noch auf dem Display angezeigt. Darüber wird dann etwas mit fehlerhaften Zeichen geschrieben..

Ich habe angenommen, dass der Display geleert wird. Wie kann der sich noch die alten Zeichen merken, sogar wenn der Strom weg war?

Danke

Gast #7350823
Lesenswert?

Ne die letzte "Ansicht" ist von gestern! Ist das überhaupt realistisch?

pegel schrieb:

Ich führe ein Cursor Goto 0,0 und ein schreiben mit 0x00 vor jedem Bildwechsel aus.

1
//****main.c****//
2
#include "lcd.h"
3

4
int main(void) {
5
  lcd_init(LCD_DISP_ON); // init lcd and turn on
6
  lcd_gotoxy(0, 0);
7
  lcd_puts("Test???????"); // put string from RAM to display (TEXTMODE) or
8
                           
9
  lcd_gotoxy(0, 4);        // set cursor to first column at line 3
10
  lcd_puts("Test???????"); // put string from RAM to display (TEXTMODE) or
11

12

13

14
  for (;;) {
15
    // main loop
16
  }
17
  return 0;
18
}
#7350942
Lesenswert?

säurehaltigerStein schrieb:

Darüber wird dann etwas mit fehlerhaften Zeichen geschrieben..

Hast du auch den Controller-Typ angepasst? Die Library ist für SSD1306-Displays und für SH1106 Displays. Beim falschen Controller bekommt man auch falsche Zeichen/Pixel gezeichnet. Das Beispiel auf github ist auf SH1106-Displays eingestellt, das musst du auf SSD1306 ändern wenn du ein SSD1306-Display verwendest. Lass dir mal die Aufgaben (TODOs) anzeigen in deiner IDE, dann siehst du wo du überall Einstellungen vornehmen musst.

#7351621
Lesenswert?

säurehaltigerStein schrieb:

Woher wusstest du das?

Naja, ich kenne meine Library halt und ich habe hier gelesen, dass du das SSD1306-Display benutzt. In Verbindung mit dem Fehlerbild war klar, dass du höchstwahrscheinlich den falschen Controller eingestellt hast.

säurehaltigerStein schrieb:

Also, wird das öfters mit "todo" markiert?

TODOs sind tatsächlich nicht unüblich und sollen dem Entwickler helfen, Stellen im Code zu finden, an denen noch gearbeitet werden muss. Ich nutze das u.a. um anzuzeigen wo gff. auch noch Einstellungen vorzunehmen sind.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren