Go Down

Topic: EA eDIPTFT43-A an Arduino Board (Read 1 time) previous topic - next topic

iben

Hallo,
ich will das o.g. Display über I2C ansteuern. Ich habe es wie auf Seite 7 der TFT Anleitung mit dem Arduino Board Verbunden:
http://www.lcd-module.de/pdf/grafik/ediptft43-a.pdf

1  - GND
2  - 5V
5  - 5V
12 - GND
13 - GND
14 - SDA
15 - SCL

Ich erhalte einen Blinkenden Cursor. Soweit so gut.
Ich will mit folgendem Code ein Clear Screen über das SMALL Protokoll senden und als Rückgabewert ein ACK erhalten:

#include <Wire.h>
#define  i2c_eaDIP  0xDE        // Ba2|Ba1|Ba0|Sa2|Sa1|Sa0|R/W

byte bcc;
byte *buffer = 0;

void setup()
{
 Serial.begin(9600);
 Wire.begin();                       // join i2c bus (address optional for master)
}

void loop()
{
 delay(100);
 Wire.beginTransmission(i2c_eaDIP);  // transmit to device #0xDE
 Display_loeschen();
 Wire.endTransmission();     // stop transmitting
 delay(100);
 Wire.requestFrom(0xDF, 1);

 int c = 0;
 
 for ( c = 0; c < 1; c++ )
   if (Wire.available()) {
     buffer[c] = Wire.receive();
     Serial.println("Daten vorhanden!");    
   }

 Serial.println(*buffer, HEX);

 for(;;)
   ;
}

void Display_loeschen() {
 Wire.send(0x11);   // <DC1>
 Wire.send(0x03);   // len
 Wire.send(0x1B);   // ESC
 Wire.send('D');
 Wire.send('L');
 bcc = ( 0x11 + 0x03 + 0x1B + 'D' + 'L' ) % 0x400;
 Wire.send(bcc);
 //D = 0x44
 //L = 0x1B
}

Die kommunikation scheint nicht zu klappen, da das TFT keine Daten zurücksendet. Kann mir da jemand weiterhelfen?

Danke,
Gruß Marco

Nachtwind

#1
Dec 01, 2009, 09:57 am Last Edit: Dec 01, 2009, 09:57 am by Nachtwind Reason: 1
Hm.. ich wuerde einmal ganz pauschal versuchen mit WireOnReceive->http://arduino.cc/en/Reference/WireOnReceive eine Art 'Event' zu programmieren, dass aufgerufen wird falls Daten erscheinen. Da du Delays nutzt koennte es naemlich sein, dass die Kommunikation ein wenig gestoert sein koennte..

*edit*
Achja, wo hast du das Modul her? Ich faende das extrem interessant..
Believe me, Mike, I calculated the odds of this succeeding against the odds I was doing something incredibly stupid[ch8230] and I went ahead

iben

Das Modul habe ich bei Reichelt bestellt.
Du brings mich auf was, es könnte in der Tat ein Timing Problem sein.

Gruß,
Marco

Nachtwind

ouch, danke fuer den Tip mit Reichelt.. ist mir leider zu guenstig :0(
Schoenes Geraet dennoch.
Believe me, Mike, I calculated the odds of this succeeding against the odds I was doing something incredibly stupid[ch8230] and I went ahead

Claus

Die Arduino SW verwendet 7Bit Adressen. Hast Du das berücksichtigt?
Ich habe das beim LM75 folgendermassen gemacht

#define LM75 (0x90 >> 1)       // LM75 7-Bit Adresse

Claus

iben

Claus ich danke dir, ich mache schon seit Tagen rum, es liegt an den 7bit. Und zwar wird das letzte Bit (zuständig für lesen oder schreiben 0/1) SWSeitig berücksichtigt und darf nicht in die Adresse eingebunden werden.
Nachtwind dir natürlich auch vielen dank.

Gruß,
Marco

Go Up