Hi,
ich hab mir auch noch mal das Datenblatt angeschaut und komme auf das gleiche Ergebnis wie damaltor und raid_ox.
Hier noch mal mein Beispielcode für das EA T123. Initialisierung und Textausgabe in Subroutinen. Delay auf 1ms reduziert. Status LED sollte eine halbe Sekunde gelb leuchten, wenn Init erfolgreich war, dann grün. Rot bei Fehler.
Ansonsten zur Hardware noch den Tip, am Kontrastregler drehen. Die Kontrastspannung VEE sollte ca 1V oder darunter betragen.Code:#include <avr/io.h> #include "i2cmaster.h" #include "asuro.h" #define Display 0x74 // device address of Display, see datasheet int lcd_init(void) { int ret=0; Msleep(500); ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse if ( ret ) //geschrieben { i2c_stop(); //sollte das nicht gehn, abbrechen return -1; } i2c_write(0x00); //controll byte (muss gesendet werden laut datenblatt) Msleep(1); i2c_write(0x2C); //die nächsten bitfolgen bzw werte sind aus dem daten- Msleep(1); //blatt kopiert. sollte eigentlich das display i2c_write(0x0E); //einschalten und den corsur nach oben Msleep(1); //links setzen. i2c_write(0x06); //einzige änderung: da nicht dual power sondern nicht //+5V und -5V) habe ich das G-bit auf 1 geändert. //single supply genutzt wird (also nur +5V und gnd und i2c_stop(); Msleep(10); return 0; } int lcd_write(char *text) { int ret=0; unsigned char i = 0; ret = i2c_start(Display+I2C_WRITE); //hier wird der I2C bus gestartet und die adresse if ( ret ) //geschrieben { i2c_stop(); //sollte das nicht gehn, abbrechen return -1; } i2c_write(0x40); //controll byte (muss gesendet werden laut datenblatt) while(text[i] != 0) { i2c_write(text[i++]); Msleep(1); } i2c_stop(); return 0; } int main(void) { int ret; Init(); i2c_init(); ret = lcd_init(); // LCD Initialisieren if (ret == 0) { StatusLED(YELLOW); ret = lcd_write("Test"); // LCD Textausgabe if (ret == 0) { Msleep(500); StatusLED(GREEN); } else StatusLED(RED); // Fehler beim LCD schreiben } else StatusLED(RED); // Fehler beim LCD init while(1); return 0; }







Zitieren

Lesezeichen