Hallo, ich habe schon wieder ein Problem mit einem M16 uC... Ich habe ein 320x240 LCd mit SED1335 über CS2 an den Datenbus des M16C angeschlossen. Das LCD initialisiert zwar, aber es erscheinen zufällige Muster auf dem LCD und nicht der ausgegebene Text. Bis zu dem Punkt wo der RAM gelöscht wird, funktioniert das Programm. Man erkennt anhand der Pegel von A0 des SED1335 (=A1 beim M16) wann ein Befehl (=High) oder Daten (=Low) geschrieben werden. Das letzte was noch passt ist der Befehl 0x42 um den Datentransfer zu starten. Danach verhält sich alles nur noch merkwürdig: Die A0 Leitungen taktet, aber es findet kein Datentransfer zum LCD mehr statt. Kann man eigentlich irgendwie den erzeugten Assemblercode betrachen oder geht das nur über den Debugger ? Es ist nämlich ziemlich nervig jedesmal den Monitor zu flashen um den Assemblercode betrachten zu können... #pragma ADDRESS Lcd_Dat 10000H volatile unsigned char far Lcd_Dat; #pragma ADDRESS Lcd_Com 10002H volatile unsigned char far Lcd_Com; void lcd_init (void) {unsigned int i; Lcd_Com=0x40; //System Set Lcd_Dat=0x30; Lcd_Dat=0x87; Lcd_Dat=0x07; Lcd_Dat=0x27; Lcd_Dat=0x39; Lcd_Dat=0xEF; Lcd_Dat=0x28; Lcd_Dat=0x00; Lcd_Com=0x44; //Scroll Lcd_Dat=0x00; Lcd_Dat=0x00; Lcd_Dat=0xEF; Lcd_Dat=0xB0; Lcd_Dat=0x04; Lcd_Dat=0xEF; Lcd_Dat=0x00; Lcd_Dat=0x00; Lcd_Dat=0x00; Lcd_Dat=0x00; Lcd_Com=0x5D; //Cursor Form Lcd_Dat=0x04; Lcd_Dat=0x86; Lcd_Com=0x4C; //Cursor Dirction Lcd_Com=0x5A; //Horizontal Scroll Lcd_Dat=0x00; Lcd_Com=0x5B; //Overlay Lcd_Dat=0x01; Lcd_Com=0x59; //Display On/Off Lcd_Dat=0x16; Lcd_Com=0x46; //Set Cursor Lcd_Dat=0x00; Lcd_Dat=0x00; Lcd_Com=0x42; for (i=0; i<32768; i++) //Clear VRAM Lcd_Dat=0; }
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.