Hallo, ich beisse mir die Zähne aus an der Touch-Tasten Abfrage des Displays eDIP240. Das Display hängt am I2C-Bus und mit der Ausgabe von Text und Grafik habe ich keine Probleme; geht alles wunderbar. Ich habe das in diesem C-Dialekt von Conrad programmiert. Ich kann Touch-Tasten erzeugen und sie reagieren auch (werden invertiert), aber es gelingt mir nicht das Ergebnis (Tasten-Codes) zurückzubekommen. Hat mir jemand vielleicht ein Programmbeispiel? MfG Werner
Hi Werner, die bekommst Du nur zurück indem Du explizit den Inhalt des Sendepuffers anforderst (DC2,1,S,BCC). Von allein kommt da nix, Pin 20 zeigt an, wenn was drin ist oder via DC2,1,I. Roman
Hallo Roman, vielen Dank für Deine Antwort. Den Sendepuffer fordere ich nach der Pin20-Abfrage an (die Pin-Abfrage will ich später für einen Interrupt verwenden). Ich versuche dann wie folgt auszulesen (WriAdr= 222, ReadAdr= 223, d.h. alle Pins offen): I2C_Start(); I2C_Write(WriAdr); I2C_Write(DC2); // Befehl "DC2 1 S": Inhalt Sendepuffer anfordern I2C_Write(1); I2C_Write('S'); I2C_Write(bcc); // warten auf ACK... I2C_Start(); I2C_Write(ReadAdr); do { i= I2C_Read_ACK(); }while(i != ACK); // bis hierher klappt alles... I2C_Start(); I2C_Write(ReadAdr); I2C_Start(); // ohne diesen Start hängt's zeichen= I2C_Read_NACK(); // Hier kommt immer 223=0xDF an, auch mit //Read_ACK zeichen= I2C_Read_NACK(); // und ab hier kommt nur noch FF an . . Das gleiche Ergebnis erhalte ich auch mit "DC2, 1, I". Was mache ich falsch? Gruß Werner
Sorry Werner, vielleicht kann hier ein anderer weiterhelfen der sich mit I2C und dieser Syntax auskennt. Assemblerprogrammiert und über RS232 gibt es jedenfalls bei mir kein Problem, soviel Gewissheit kann ich Dir geben. Nach dem ACK muss in jedem Fall DC1/LEN/.../BCC kommen, ob mit oder ohne vorhandene Nutzdaten. Mir selbst ist übrigens unklar, wofür das I2C_Start(); I2C_Write(ReadAdr) nach der ACK-Erkennung gut sein soll aber wiegesagt, der I2C Experte bin ich nicht. Gruss Romn
Hallo Roman, ich probiers jetzt mal testweise mit RS232; ich will das Display einfach mal vollständig zum Laufen bringen. Für mein Konzept wäre halt I2C viel besser geeignet... Gruss Werner
Eine gute Idee Werner. So kannst Du die Antworten des Displays ggf. auch mal mit einem Terminalprogramm am PC testen! Roman
ich habe manchmal das problem, das beim tastendruck zwar an pin20 die leitung auf null geht, aber nicht wieder auf 5V kommt. nach mehrmaligen ein und ausschalten des displays funktioniert es dann wieder. hat jemand ne idee?
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.