Hallo zusammen, bevor mich das Thema noch 2 Tage kostet: ich verwende eine PIC und will ein 64x48 Display mit SSD1306 controller zum laufen bringen- mit I²C. Das Problem ist, das Display nimmt die Commandos alle an. Ich kann es blinken lassen, ein/auschalten und noch ein paar Sachen. Aber es nimmt keine Daten an- im Bild sind nur zufällige Pixel zu sehen, es ist zum verrückt werden... void I2CSend (unsigned char dat) { SSP1BUF = dat; // Move data to SSPBUF while (I2C1_BF);// wait till complete data is sent from buffer I2CIdle(); // wait for any pending transfer } void Write_I2C_Data (unsigned char DATA) { I2CIdle(); I2CStart(); I2CSend(0x78); // Adresse vom Display 7 Bit + WriteBit I2CSend(0x40); //Daten I2CSend(DATA); I2CStop(); __delay_us(10); } Write_I2C_Commando(0xB0); Write_I2C_Commando(0x10); Write_I2C_Commando(0x05); Write_I2C_Data(0xFF);
Gast
#4483132
Hallo, ohne das Display zu kennen: Besitzt es womöglich verschiedene Pages.. Und Du schreibst auf eine andere Page als die aktuell angezeigte.. ? Viele Grüße Christian
Hallo Christian, Das Display hat Pages von B0 bis B5. (48/8). Die habe ich schon alle probiert Ich verwende den SSD1306 in ner anderen Anwendung mit Parallel- da geht alles einwandfrei, und ich glaube mich gut auszukennen mit dem Bildschirm. Aber das I²C geht nicht um viel. Wie gesagt- der Bus scheint in Ordnung, sonst könnte ich verschieden Commandos nicht ausführen. Irgendwas fehlt noch...
Gast
#4483630
Es ist ein shell Skript für den Raspberry aber der funktioniert. Da hast du schon mal die init Reihenfolge falls es daran liegt. Kann genauso auch auf C übertragen werden. Bei mir funktioniert dieser Code.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
und dann noch clear, da kann man damit auch das Display beschreiben
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
Hallo, danke für den Code- das ist bei mir alles richtig: wie gesagt, die Steuerung funktioniert ja... Bild ist auch da- undefiniert. Also Display ist an.
Kurzes Update: Es funktioniert jetzt! Ich hatte den Reset Pin nicht verwendet- dachte das geht auch ohne! Hab jetzt zwar ein Hardwareproblem, aber ok.k.... Seltsam dass sich alles steuern ließ, die Daten aber nicht angenommen werden.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
