LCD Problem mit EA-DOGM162 Initialisierung

Postby mr. teflon » Wed Feb 02, 2011 12:00 am

Hallo,

ich habe das große Problem das mein LCD nur ganz schwer in die Gänge kommt. Wenn es einmal funktioniert, dann klappt das ganz gut. Aber wehe ich nehm die Spannung weg, dann kann ich Stunden zubringen das etwas angezeigt wird. Dann resete ich unendliche male den µC und/oder nehme vom LCD die Spannung weg bis es dann endlich wieder etwas anzeigt.

Die eigentliche Initialisierungsroutine habe ich vom Projekt der DCF-77 Funkuhr übernommen und dann wegen den Probleme versucht mittels Datenblatt nochmal zu ändern mit mehr oder weniger längeren Wartezeiten. Es wird per SPI angesprochen.

// SI   von LCD auf P1.1  (R8C13 Pin 14)// CLK von LCD auf P1.2  (R8C13 Pin 13)// RS  von LCD auf P1.3  (R8C13 Pin 12)#define SI     p1_addr.bit.b1#define CLK  p1_addr.bit.b2#define RS    p1_addr.bit.b3


// 8 Bits eines Bytes hintereinander an das LCD senden (SPI)void send_byte_to_lcd(char byte){int i;for (i = 0; i < 8; i++)  { CLK = 0;  SI = ((byte&128) != 0);   byte <<= 1; CLK = 1;  wait_us(50);};};


// LCD "EA DOGM162"  initialisierenvoid int_lcd162(void){wait_ms(1000);RS = 0;                // RS = LOW, Kommandossend_byte_to_lcd(0x39);// Function Set, 0 0 1 1 1 0 0 1send_byte_to_lcd(0x1C);// Bias Set, 0 0 0 1 1 1 0 0send_byte_to_lcd(0x52);// Power Control, 0 1 0 1 0 0 1 0 send_byte_to_lcd(0x69);// Follower Control, 0 1 1 0 1 0 0 1send_byte_to_lcd(0x74);// Contrast Set, 0 1 1 1 0 1 0 0send_byte_to_lcd(0x38);// zurück Instruction Table 0 send_byte_to_lcd(0x0C);// Display ein, Cursor aus, ohne Cursor blinken//send_byte_to_lcd(0x0F);// Display + Cursor ein + blinkensend_byte_to_lcd(0x01);// Clear Displaywait_ms(2);send_byte_to_lcd(0x06);   // Cursor Auto Increment};



// *********   Hauptprogramm   *******void main(void){   unsigned long int cnt;     // Frequenz   uint              len;    uint              range;       // Torbereich 0 ... 6     uint              wert;         // Wert des AD-Wandlers   uchar             chan;       // Mess-Kanal chan=6   uchar             tast;        // Taster    uint wertAD5;              // Messwert 10 bit   long voltAD5;              // Spannung in Volt         asm("FCLR I");            // Interrupt verhindern    OSC_Ext_20Mhz();      // ext. Oszillator mit 20 MHz      prc1 = 0; // Protection Port 1 ausschalten      p0 = 0xfd;               // Port 0 setzen   prc2 = 1;                // Protect 2 aus     pd0 = 0b11110001; // P0.0 und P0.4 bis P0.7 Ausgang,     // AN4 bis AN6 (P0.1 bis P0.3 AD Kanal 4 bis 6 Eingang      // Protect 2 geht von selbst wieder an        pd3 = 0x0e;// Port 3, Bit 3, 2, 1 sind Ausgänge   p3 = 0x04;// SCK=Low, CS=High, MAX6675   pd1 = 0b11001111; // Port Direction 1.0 bis 1.3 und 1.6     // und 1.7 auf Ausgang setzen, nur LCD    p1 = 0x00;         int_lcd162();// EA DOGM162 LCD initialsieren     asm("FSET I");       // Interrupt erlauben       Count1 = CountLimitBremse;// Gleichsetzung Zählerstart      while (1)//  Loop  \\   {


ich habe dann vor lauter Verzweiflung die Reihenfolge im Hauptptogramm geändert und extra die Ports wo das LCD angeschlossen ist nochmal auf 0 gesetzt vorm Aufruf der LCD Initialisierung. Zumindestens scheint es für einen normalen Reset besser zu funktionieren, zum Bsp. nach einem flashen. Aber egal was ich mache, hin und wieder erscheinen auch danach wilde Zeichen oder das Display wird als eine große Zeile angesprochen und zeigt Müll an.

Was kann oder muß ich ändern? Ist die SPI Ansteuerung so empfindlich?

Am LCD ist ein 100nF Keramik und ein 100µF Elko.
Der µC ist auf einer geätzten Platine, von dort ab gehen gesteckte Drähte auf mein Steckbrett worauf sich das LCD befindet.

Tschau
Mr. Teflon

(oft edititiert um den Code wegen Platzverhältnissen leserlicher zugestalten)
mr. teflon
 
Posts: 146
Joined: Fri Jan 03, 2014 1:48 pm

Postby herch » Thu Feb 03, 2011 12:00 am

Hallo Mr. Teflon,

das Display EA-DOGM 162 A ist im Artikel "DCF77 Funkuhr mit dem R8C/13" im Mikrocontroller Sonderheft 2006 verwendet worden. Die Datei mit der Initialisierung des Displays habe ich angefügt.

Gruß

Herch


ups, habs zu spät gesehen, dass du es daher hast
Attachments
DCF-LCD-UHR.c
(10.23 KiB) Downloaded 96 times
herch
 
Posts: 52
Joined: Fri Jan 03, 2014 1:48 pm


Return to Das R8C-Projekt

Who is online

Users browsing this forum: No registered users and 1 guest