Hallo, ich muss für die Schule ein edip240-7 Touchscreen-Display programmieren. Ich verwende den LPC935 µC und programmiere es über I2C. Bisher funktioniert es aber nicht wirklich. Erst einmal kam ich (zufällig und unbeabsichtigt) in den Terminalmodus, obwohl die Lötbrücke J2 nicht geschlossen war. Ich muss aber in den Grafikmodus, weil ich Touchtasten definieren möchte. Ansonsten hat das Display nichts gemacht und ich weiß mir auch nicht zu helfen. Gibt es vielleicht eine Art Initialisierung, die man beachten muss? Ich wäre über Tipps und eventuelle Codebeispiele sehr dankbar.
Bisschen wenig Informationen meiner Meinung nach. Die Lötbrücke wirste schon schließen müssen, es sei denn du hast das SmartProtokoll schon implementiert. Bezüglich der Ansteuerung findest du in der PDF schon reichlich Anhaltspunkte. Grüße
Ich will die Lötbrücke ja nicht schließen. Ich will aus dem Terminalmodus raus. Das Display ist von selbst in den Terminalmodus gesprungen und reagiert nur auf einen Befehl (Versionsnummer ausgeben). Alle anderen ignoriert es einfach.
Vielleicht steh ich auch grad aufm Schlauch ... Also wenn du den J2 Jumper nicht schließen willst/möchtest, dann geh ich davon aus, dass du das Smallprotokoll bereits auf deinem Controller implementiert hast ... korrekt?
Ich weiß nicht genau was du mit implementieren meinst. Ich versuch mal ein bisschen genauer zu erklären: Hier ein Ausschnitt aus meinem Programm, bei dem ich ein Rechteck zeichnen will: void dis_rahmen() { send[0] = ESC; send[1] = 'G'; send[2] = 'R'; send[3] = 1; send[4] = 1; send[5] = 30; send[6] = 30; send[7] = DC4; i2c_write(); } DC4 habe ich selbst dazugefügt, es ist nur dazu da, dem Programm das Ende der Daten mitzuteilen und wird nicht mehr mitgeschickt. Bei den Werten hab ich es so versucht, ich habe sie unter Anführungszeichen gesetzt und sie in hex geschickt. Daran kann es also nicht liegen. Wenn ich das Programm dann schickte, tut sich auf dem Display nichts, aber ich habe mit dem Oszilloskop gemessen. Die Übertragung war korrekt und nach jedem Byte wurde ein Acknowledge gesendet. Wie gesagt, tut sich am Display nichts. Braucht man vielleicht eine Initialisierung? Vielleicht kannst du mir eine Routine schicken, bei der eine einfache Touchtaste definiert wird, nur um zu sehen, obs funktioniert. MFG, Stefan
Mit Code kann ich leider nicht dienen, da ich so ein Display nicht besitze ... Aber nochmal grob zusammengefasst ... -> Du hast die Lötbrücke nicht geschlossen, ergo will das Display mit dem SmallProtokoll angesprochen werden ... --> quasi Daten die wie auf Seite 8 deiner PDF beschrieben sind Wenn du lediglich ...
1 | send[0] = ESC; |
2 | send[1] = 'G'; |
3 | send[2] = 'R'; |
4 | send[3] = 1; |
5 | send[4] = 1; |
6 | send[5] = 30; |
7 | send[6] = 30; |
... sendest, und nicht wie gefordert "<DC1> <Länge des Paketes> <DeineDaten> <Prüfsumme>", dann macht das Display auch nix. Vielleicht solltest du mal den gesamten Code anhängen.
DC1, die Länge und die Prüfsumme schick ich ja mit. Aber auf jeden Fall mal mein Programm im Anhang. Die I2C Routinen sehen ein bisschen verwirrend aus (sind vom Lehrer). Das Programm ist noch in der Entwicklung, hab viel herumprobiert und deswegen sind ne Menge Sachen auskommentiert. Die kannst du vernachlässigen.
Wird das Escape-Zeichen auch so wie soll gesendet? Vielleicht probierste mal '#' oder eine 0x23. Das ACK bekommst du, sagst du ja, das bekommt man wenn das Paket i.O. war. Dann kanns ja nur an der Synthax liegen.
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.