Hallo Bekomme das Display nicht initíalisiert. Habe schon alles ausprobiert es zeigt nichts an außer einen schwarzen strich 1 pixel dick am oberen rand. Mode ist 8080 generic. Hier ist die Init. Habe diese von der S1335 LIB die auch schon mit einen Epson S1335 funktioniert. Display ist ein :CFAG320240CX-TFH-T-TS. WAIT,DISPL,FGND sind nicht Beschaltet lt Hersteller nicht notwendig. Hat jemadn noch einen Rat?? Besten Dank Gruß Paulchen
Habe schon alle Verbindungen geprüft MEga zum Display aber nichts nur ein Schwarzer strich der nach der INIT verschwindet. Habe auch sämmtliche Commadn Write Data Write Prozeduren durch sind alle total Unterschiedlich immer das gleiche Problem. Kann ich die Gleiche INIT nehmen wie beim 1335 Epson dort geht mein LEdsee 320x240 Display??? Danke Gruß Paul
Hallo Ich habe mal die Beiden Schaltungen verglichen vom Ledsee Display und vom Crystalfontz. Das Ledsee wird Kontrastmäßig über GND und VEE gesteuert Das Crystalfontz über 5V und VEE. Ist das so???? Ich bekomme an VO maximal -9V bis +4,5V typisch laut DB ist -18V. Kann es damit zusammenhängen das nach dem INIT der Streifen oben weg ist und ich nichts sehe weil der Kontrast nicht sauber geht???? Poti 10K eine seite an +5V die andere an VEE -25V und der Schleifer an VO. Messen tue ich VO und GND. Danke Gruß Paul
Hallo Fehler ist gefunden habe den Kompletten Anschlußstecker Stftleisten falsch verbunden PIN 1 = PIN20 Alles umeglötet. Nur habe ich das Problem das Layer 1 Grafiklayer geht aber Layer 2 und 3 nur Müll anzeigen. Habe die SAD1L+H Adressen vom 1335 Übernommen. 320/8=40 240*40=9600 =0x0000 Start 0x2580 ende Layer1 0x8581 start 0x4b01 ende Layer2 0x4b02 start 0x7082 ende Layer3 ist das beim 13700 genau so laut Datenblatt ja. Danke Gruß Paul
Hallo Also die Adressen für die Layer passen. Es wird auch schon was angezeigt fonts und grafik. Das was nicht geht sind linien und Kreise. Die lib verwende ich auch 1:1 mit einen SED 1335 dort gehts. void GLCD_Line(int X1, int Y1,int X2,int Y2,int layer) { int CurrentX, CurrentY, Xinc, Yinc, Dx, Dy, TwoDx, TwoDy, TwoDxAccumulatedError, TwoDyAccumulatedError; Dx = (X2-X1); // obliczenie sk³adowej poziomej Dy = (Y2-Y1); // obliczenie sk³adowej pionowej TwoDx = Dx + Dx; // podwojona sk³adowa pozioma TwoDy = Dy + Dy; // podwojona sk³adowa pionowa CurrentX = X1; // zaczynamy od X1 CurrentY = Y1; // oraz Y1 Xinc = 1; // ustalamy krok zwiêkszania pozycji w poziomie Yinc = 1; // ustalamy krok zwiêkszania pozycji w pionie if(Dx < 0) // jesli sk³adowa pozioma jest ujemna { Xinc = -1; // to bêdziemy siê "cofaæ" (krok ujemny) Dx = -Dx; // zmieniamy znak sk³adowej na dodatni TwoDx = -TwoDx; // jak równie¿ podwojonej sk³adowej } if (Dy < 0) // jeœli sk³adowa pionowa jest ujemna { Yinc = -1; // to bêdziemy siê "cofaæ" (krok ujemny) Dy = -Dy; // zmieniamy znak sk³adowej na dodatki TwoDy = -TwoDy; // jak równiez podwojonej sk³adowej } GLCD_SetPixel(X1,Y1, color,layer); // stawiamy pierwszy krok (zapalamy pierwszy piksel) if ((Dx != 0) || (Dy != 0)) // sprawdzamy czy linia sk³ada siê z wiêcej ni¿ jednego punktu ;) { // sprawdzamy czy sk³adowa pionowa jest mniejsza lub równa sk³adowej poziomej if (Dy <= Dx) // jeœli tak, to idziemy "po iksach" { TwoDxAccumulatedError = 0; // zerujemy zmienn¹ do // ruszamy w drogê { CurrentX += Xinc; // do aktualnej pozycji dodajemy krok TwoDxAccumulatedError += TwoDy; // a tu dodajemy podwojon¹ sk³adow¹ pionow¹ if(TwoDxAccumulatedError > Dx) // jeœli TwoDxAccumulatedError jest wiêkszy od Dx { CurrentY += Yinc; // zwiêkszamy aktualn¹ pozycjê w pionie TwoDxAccumulatedError -= TwoDx; // i odejmujemy TwoDx } GLCD_SetPixel(CurrentX,CurrentY, color,layer);// stawiamy nastêpny krok (zapalamy piksel) }while (CurrentX != X2); // idziemy tak d³ugo, a¿ osi¹gniemy punkt docelowy } else // w przeciwnym razie idziemy "po igrekach" { TwoDyAccumulatedError = 0; do { CurrentY += Yinc; TwoDyAccumulatedError += TwoDx; if(TwoDyAccumulatedError>Dy) { CurrentX += Xinc; TwoDyAccumulatedError -= TwoDy; } GLCD_SetPixel(CurrentX,CurrentY, color,layer); }while (CurrentY != Y2); } } } void GLCD_SetPixel(unsigned int x,unsigned int y, int color,int layer) { unsigned char tmp = 0; unsigned int address; if(layer==1)address=SED1335_GRAPHICSTART1 + (40 * y) + (x/8); if(layer==2)address=SED1335_GRAPHICSTART2 + (40 * y) + (x/8); if(layer==3)address=SED1335_GRAPHICSTART3 + (40 * y) + (x/8); GLCD_SetCursorAddress(address); GLCD_WriteCommand(SED1335_MREAD); tmp = GLCD_ReadData(); if(color) tmp |= (1 << (SED1335_FX - (x % 8))); else tmp &= ~(1 << (SED1335_FX - (x % 8))); GLCD_SetCursorAddress(address); GLCD_WriteCommand(SED1335_MWRITE); GLCD_WriteData(tmp); } Die Linen sind gestrichelt. Hat jemand eine Idee??? Vielen Dank Gruß Paul
Hallo Nun ist alles IO. Der fehler liegt in den Timing beim ReadGLCD. Hier der Code der jetzt funktioniert unsigned char GLCD_ReadData(void) { unsigned char tmp; SED1335_DATA_DIR = 0x00; SED1335_CONTROL_PORT &= ~(SED1335_CS); SED1335_CONTROL_PORT &= ~(SED1335_RD); _delay_us(10); //Hier war der fehler habe da 10µs eingefügt und nun gehts tmp = SED1335_DATA_PIN; asm("nop"); asm("nop"); SED1335_CONTROL_PORT |= (SED1335_RD | SED1335_CS ); return tmp; } der 1S13700 scheint ziemlich kritsisch mit Timings zu sein der 1335 war da nicht anfällig. So aber nun gehts. Das Display ist bedeutend besser im Tageslicht betrieb als das ledsee. Das BL habe ich Dimmbar gemacht über PWM und Mosfet geht auch ganz gut. Nun muß ich noch den Touch anschließen. Danke Gruß Paul
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.