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.
