Hallo Sheff,
bis auf den Spannungswandler LM7805 wird nichts warm.
Ich gehe auch davon das dass ich das Kabel richtig Konfektioniert habe da ich die Leitungen schon von Display bis zum RnMega2560 mit dem Durchgangsprüfer getestet habe.
Gruß Sebasti
Hallo Sheff,
bis auf den Spannungswandler LM7805 wird nichts warm.
Ich gehe auch davon das dass ich das Kabel richtig Konfektioniert habe da ich die Leitungen schon von Display bis zum RnMega2560 mit dem Durchgangsprüfer getestet habe.
Gruß Sebasti
Hmmm... ist echt verrückt...
Überprüf mal dein Kontrastpoti und Kondensator kurz auslöten (bald gehen mir die Vorschläge aus)
Das bringt leider auch nichts.
Macht es Sinn wenn ich die Signalverläufe der einzellnen Ausgänge aufzeichne und hier poste?
Gruß Sebasti
könntest gucken, ob die Signale beim LCD auch so ankommen, wie µC sie ausgibt...Macht es Sinn wenn ich die Signalverläufe der einzellnen Ausgänge aufzeichne und hier poste?
Läuft es denn an einem anderen Port? Passen die Fuses? Nicht dass der Watchdog immer an ist. Mal einen langsameren Takt probiert? Kannst Du an diesem Port LEDs einzeln ansteuern? (z.B. Lauflicht)
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Hallo Sebasti,
auf der Pollin-Seite (dein Link im ersten Beitrag) steht es recht deutlich, daß das Display 2 Controller hat.
Das wird auch nochmal in deinem verlinkten Datenblatt deutlich, E1 und E2 sind auf Pin6 und 7 des Displays.
Bei der Initialisierung müssen natürlich beide Displayhälften gestartet werden.
Gruß, MichaelCode:$regfile = "m32def.dat" 'Atmega32 CPU $crystal = 16000000 'Quarz 16Mhz $hwstack = 64 $swstack = 64 $framesize = 40 Ddrb = &B11111111 Config Lcd = 40 * 4 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.6 , E2 = Portc.5 , Rs = Portc.7 Dim ___lcdno As Byte Dim Y As Byte ___lcdno = 0 Initlcd Cls ___lcdno = 1 Initlcd Cls Do ___lcdno = 0 Locate 1 , 1 Lcd "1.Zeile " ; Y Waitms 1000 Y = Y + 1 Locate 2 , 1 Lcd "2.Zeile " ; Y Waitms 1000 ___lcdno = 1 Locate 1 , 5 Lcd "3.Zeile " ; Y Waitms 1000 Y = Y - 1 Locate 2 , 5 Lcd "4.Zeile " ; Y Waitms 1000 Y = Y + 1 Locate 2 , 25 If Y < 100 Then Lcd " "; End If If Y < 10 Then Lcd " "; End If Lcd Y Loop End
Geändert von Michael (12.03.2011 um 14:46 Uhr)
Hallo zusammen,
Entschuldigung für die Wartezeit, aber jetzt geht es weiter.
@Michael: Ich weiss. Nach meinen Kenntnisstand sollte die obere Displayhälfte auch was anzeigen wenn man nur das obere Initalisiert. Außerdem laufen meine Versuche im Moment mit dem 16 * 4 Display da dies vor 2 Jahren definitiv mal funktioniert hat. Ich hatte für das große Display auch das Testprogramm wie in der Wiki beschrieben verwendet.
Mal so eine kleine Zwischenfrage: die Funktion Ddrb = &B11111111 verstehe ich nicht ganz. Ich weis das man mit dieser Funktion Ports als Eingang und Ausgang definieren kann, ich weiss nur nicht wie sich die Funktion aufbaut! Kannst du mir das bitte erklären?
@peterfido: Nein es läuft nicht an einem anderem Port.
Ich habe einfach mal das Display abgeklemmt und ein paar LEDs angeschlossen. Das Ergebnis ist das der Controller definitiv arbeitet da die LEDs Leuchten, blinken.... auf jedenfall mehrfach den Zustand wechseln. Außerdem kann ich die Bordeigene LED (Portd.1) blinken lassen.
Der Watchdog war mir bis jetzt unbekannt. Leider bringt der Einbau des Befehls stop watchdog auch nichts...
Ich denke schon das die Fuses stimmen, kann das aber nicht genau beurteilen.
Deswegen findest du im Anhang einen Screenshot von den Fusbites.
Bei der Überprüfung ist mir aufgefallen das die Frequenz im Programm auf 16 MHz eingestellt war obwohl der Atmega im Moment nur mit einem MHz intern arbeitet.
Leider bringt die Korrektur auch nichts.
Zwichendurch ist mir noch aufgefallen das der Reset auf dem Atmega32-Board nicht funktioniert. Weiss jemand ob das was mit dem Fusebites oder dem Layout zu tun hat? (im Anhang ist das Layout)
Gruß Sebasti
Lesezeichen