Hi, Ich habe einfach mal einen neuen Thread aufgemacht da der andere schon etwas voll ist und es hier um ein anderes "Testprojekt" geht. Wie schon gesagt, das Display zeigt nichts an, nur die Hintergrundbeleuchtung. Ich habe mir jetzt ein Projekt aus dem Internet gesucht , womit ich testen wollte, ob das Display was ausgibt. Link: http://www.code2impress.com/2013/04/how-to-make-digital-watch-with-16x2-lcd.html Benutzt habe ich meinen ATMega8 und das Display wie im Schaltplan angeschlossen, dazu VCC und GND angeschlossen. Den internen Takt habe ich auf 1Mhz gestellt und einfach die .Hex Datei übertragen. Muss man noch etwas einstellen, damit man PortC freigibt oder so? Wie z.B Jtag bei AtMega16 ? Falls jemand irgendein Programm etc. hat wo er sagt "hiermit muss das Display 100% was Anzeigen" dann wäre es nett, wenn ich es zum testen haben könnte... Ich habe jetzt noch ein Bild hinzugefügt, wie ich das Display angeschlossen habe, ich habe es noch nicht verlötet, da es eig. in eine fertige Platine eingebaut werden soll. KÖnnte dort der Fehler liegen? Vielen Dank!
321x45 schrieb: > Ich habe einfach mal einen neuen Thread aufgemacht da der andere schon > etwas voll ist und es hier um ein anderes "Testprojekt" geht. Deswegen musst du den doch nicht gleich mit einem gefühlten 6 Bildschirme großen Bild eröffnen. Was sollen diese halb sichtbaren Kabel zur Lösung deines Problems beitragen?
Vllt, dass die Verkabelung "wackelig" ist und somit kein Kontakt entsteht? Wenn du eine Lösung für mein Problem hast, dann nenn Sie mir einfach , statt rumzumeckern...
Hallo, wenn die Kontakte nur durchgesteckt wurden kann dadurch natürlich ein Fehler entstehen. Wenn der Kontakt in einer Datenphase unterbrochen wird kommen die Daten fehlerhaft an. Abhilfe -> festlöten Wenn es dann nicht funktioniert: - Passt der Code zu deinem Display-Controller (nicht der mega8)? - Code selber übersetzen und schauen ob/was passiert
321x45 schrieb: > Vllt, dass die Verkabelung "wackelig" ist und somit kein Kontakt > entsteht? > das kannst nur du prüfen..... 1. Weshalb hast du den Aufbau nicht so fotografiert, dass man alles sieht? 2. Weshalb hast du für den Anschluss desselben nicht "passende" Farben verwendet? 3. Wo ist der Schaltplan auf den du dich beziehst?
Der Schaltplan und das C Programm mit den lcd routinen ist auf der Internetseite. Aber kann ich gerne hochladen. Schaltplan und main programm füge ich auch hinzu. Hab alles so eben nochmal aufgebaut. Wahrscheinlich muss ich es wohl doch mit löten versuchen.. Naja solche Displays kosten ja bei Ebay nicht die Welt.
Kauf dir eine Stiftleiste im 2,54mm-Raster und löte die ein. Sowas kann man im Zweifel auch wieder auslöten....
Ich löte die Kabel dran, lohnt sich nicht stiftleisten zu kaufen und dazu dann 5€ Versand...
Man kann viel erkennen...Stecken etwa dir Steckbrücken lose im Display ? Wenn Ja - So wirds nix Wenn Nein, ...ich sehe nichts..
1. An RESET fehlt ein 10k Pull-up 2. Das Programm erwartet ein Display an port d - du hast es an c angeschlossen
Ich bin nach der Seite gegangen, und dort steht ja, dass der LCD auf PORTC angeschlossen wird. Hab wie gesagt nur die .hex datei übertragen, nichts komplimiert.
Otto schrieb: > 2. Das Programm erwartet ein Display an port d - du hast es an c > angeschlossen Hinweis für 321x45: Entweder so verdrahten, wie es lcd.h angegeben ist oder lcd.h ändern. Übrigens:
1 | #define F_CPU 1000000UL
|
sollte immer vor
1 | #include <util/delay.h> |
stehen (auch wenn es hier nicht stört, da der Default-Wert auch 1MHz ist). Gruß Dietrich
So habe nun Kabel an das Display gelötet werde nun lcd.h von PortB auf PortC ändern und das Programm kompilieren übertragen und testen. Ich gebe dann bescheid!
321x45 schrieb: > Muss man noch etwas einstellen, damit man PortC freigibt > oder so? Wie z.B Jtag bei AtMega16 ? Der M8 hat keinen JTAG, also nein.
321x45 schrieb: > werde nun lcd.h von PortB auf PortC ändern Aber Du achtest auch auf die Bitposition der einzelnen Leitung? Nur
1 | #define LCD_PORT PORTD
|
ändern reicht nicht ;-(
So ernüchternes Ergebnis: Es wird nur der Balken angezeigt, wenn das Poti auf Linksanschlag ist. Wie soll ich nun vorgehen? in der lcd.h hab ich von PORTB auf PORTC umgestellt.
Der Balken wird aber nicht blass sondern sehr deutlich angezeigt. Bevor ich das Display an ein Mc angeschlossen habe, war der Balken nur schwach erkennbar
Meine Fresse.... Versuch halt zu verstehen wie das LCD und der Code funktioniert! Gehirn einschalten und Datenblatt lesen. Jupp
Oh ich hab gar nicht die Nachricht von Dietrich gelesen, wie mache ich das denn? Sind die BItpositionen (4-7) nicht schon korrekt?
Stimmt der Schaltplan so mit dem Aufbau überein? Ich hoffe nicht. Was ist mit AVcc? Nicht angeschlossen? Abblockkondensatoren??
Vom C habe ich keine Ahnung, offentsichlich hat der Junge etwas geflasht, wo der Code OK ist. Also kann es nur an seine Verdrahtung liegen...??? Solche enorme probleme mit einer LCd habe schon lange nicht gesehen hier..
Ups AVCC hab ich ja ganz vergessen... Angeschlossen, selber Fehler... Abblockkondensatoren sind auch dran. Wie gesagt es soll nur zum testen der LCD dienen.
321x45 schrieb: > Wie gesagt es soll nur zum testen der LCD dienen. Nach meiner Meinung nach wenn es um testen geht sollte sowas im LCd sichbar sein : Hallo World Ich tippe auf Verdrahtung.Schau mal die wichtigste Leitung an. 4,5,6 und 11,12,13,14 noch mal....besonders ob die RS/RWE mit dem Code übereinstimmen, Normaleweise RW ist nach GND LCD-Pin 1 (VSS) --> GND LCD-Pin 2 (VDD) --> 5 V Versorgungsspannung LCD-Pin 3 (Kontrast) --> z.B. Poti/Trimmer für Kontrasteinstellung LCD-Pin 4 (RS) --> an einen Pin des ATmega8 (z.B. PORTD.2) LCD-Pin 5 (R/W) --> GND LCD-Pin 6 (E) --> an einen Pin des ATmega8 (z.B. PORTD.3) LCD-Pin 7 (D0) --> im 4-Bit Modus nach GND schalten LCD-Pin 8 (D1) --> im 4-Bit Modus nach GND schalten LCD-Pin 9 (D2) --> im 4-Bit Modus nach GND schalten LCD-Pin 10 (D3) --> im 4-Bit Modus nach GND schalten LCD-Pin 11 (D4) --> an einen Pin des ATmega8 (z.B. PORTD.4) LCD-Pin 12 (D5) --> an einen Pin des ATmega8 (z.B. PORTD.5) LCD-Pin 13 (D6) --> an einen Pin des ATmega8 (z.B. PORTD.6) LCD-Pin 14 (D7) --> an einen Pin des ATmega8 (z.B. PORTD.7) LCD-Pin 15 (HG-Bel.) --> siehe Datenblatt LCD-Pin 16 (HG-Bel.) --> siehe Datenblatt
Hi >LCD-Pin 7 (D0) --> im 4-Bit Modus nach GND schalten >LCD-Pin 8 (D1) --> im 4-Bit Modus nach GND schalten >LCD-Pin 9 (D2) --> im 4-Bit Modus nach GND schalten >LCD-Pin 10 (D3) --> im 4-Bit Modus nach GND schalten Erzähle anderen Anfängern nicht so einen Mist. Die Datenpins sowie RS und R/W haben integrierte Pull-Up-Widerstände. Also offen lassen. MfG Spess
Nun so nebenbei bemerkt...meine erste Schritte habe ich von hier geholt. Es hat ALLES ohne Probleme gefunzt... http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/
Ich habe es jetzt einfach mal mit dem aus dem Tutorial getestet... Immernoch nur schwarze Balken. Die Frequenz ist auf 8Mhz eingestellt und halt lcd-routines.h und lcd-routines.c eingefügt.. Ich bin echt mit meinem Latein am Ende :/
Hi >Nun so nebenbei bemerkt...meine erste Schritte habe ich von hier geholt. >Es hat ALLES ohne Probleme gefunzt... >http://halvar.at/elektronik/kleiner_bascom_avr_kur... Du glaubst auch jeden Sch..., der im Internet steht. Durch den Anschluss an Masse hast du mindestens eine erhöhte Stromaufnahme. Bei Verwendung des Statusregistern noch ganz andere Probleme. Wenn schon hart auf einen Pegel legen, dann auf VCC. MfG Spess
spess53 schrieb: > Du glaubst auch jeden Sch..., glaube nicht unbedingt....aber vielleicht bin ja doof, aber alle seine Schaltungen , wie schon gesagt funzten. Nach seiner Erklärung habe ich die Grundsteine gelernt, und bis heute bestimmt 20 Projekte mit LCD gemacht...hatte nie ein Problem.. Ok, wenn Ihr bessere Vorschläge für den Jungen habt, ziehe mal zurück. Bin gespannt.
:
Bearbeitet durch User
Spess schrub: >Du glaubst auch jeden Sch..., der im Internet steht. Ich gebe zu bedenken, daß ich diese Maßnahme (Do-D3 hart auf Masse) auch schon erlebt habe. Das war ein Display aus einer Telefonanlage, was dort drin auch schon so verdrahtet war und um's Verrecken nicht ohne diese 4 Verbindungen funktionierte. Wir haben es mit Elektronik zu tun -da darf Einen Nichts wundern... ;-) MfG Paul @Autor Hast Du mal ein völlig anderes Programm, was zum Bleistift nur eine LED blinken läßt ausprobiert? Nur, um sicherzugehen, daß sich der Kontroller "anständig benimmt"?
Paul Baumann schrieb: > Hast Du mal ein völlig anderes Programm, was zum Bleistift nur eine LED > blinken läßt ausprobiert? Evtl. kann ein C Profi ihn eine HEX File geben mit Hallo World, er hat doch eine LCD Anzeige
Thomas schrob:
>....er hat doch eine LCD Anzeige
Ach?!
Das ist mir nicht entgangen -ich möchte herausfinden, ob der Kontroller
überhaupt richtig bzw. mit dem richtigen Takt läuft. Das sieht man mit
einem Blinkprogramm noch am Allerbesten. Wenn das Timing nicht stimmt,
zeigt ihm sein Display dann nämlich auch nichts an.
MfG Paul
Leider habe ich keine Blinkschaltung momentan parat. Und ich weiß ehrlich gesagt echt nicht mehr was ich machen soll... Ich habe den inneren Takt auf 8Mhz gestellt. Und im Bsp Programm aus dem Tutorial einfach auf 8Mhz geändert. Die dort angebene Frequenz kann man ja ohne Quarz nicht einstellen.
321x45 schrieb: > Leider habe ich keine Blinkschaltung momentan parat. Du wirst doch wohl eine einzelne LED haben. Oder ein Multimeter das würde auch gehen.
321x45 schrieb: > Und im Bsp Programm aus dem > Tutorial einfach auf 8Mhz geändert. Die dort angebene Frequenz kann man > ja ohne Quarz nicht einstellen. Mal 'ne ganz blöde Frage: Danach hast du das ganze aber kompiliert und auf den Mikrocontroller "geflasht"?
Ich glaube wir können hier noch ewig rätseln. Wenn der OP es nichtmal gebacken kriegt schnell ein Blinkprogramm zu schreiben und eine LED an seinen Controller zu hängen wird es auch nie und nimmer schaffen sein LCD an den Start zu kriegen.
So gute Nachrichten: Ich habe hier einen Thread gefunden und dort hat ein Herr Hein Peter Posch (Poschi8) das Tutorial schon komplimiert und diese hochgeladen. Die Frequenz habe ich auf 4Mhz gestellt, so wie es auch bei ihm angegeben war. Bin mir jetzt aber nicht sicher, ob es genau das selbe Tut ist, der Beitrag stammt von Febr. 2010. So habe ich den Mc besschaltet: 1 Vss GND 2 Vcc 5V 3 Vee GND oder Poti (siehe oben) 4 RS PD4 am AVR 5 RW GND 6 E PD5 am AVR 7 DB0 offen 8 DB1 offen 9 DB2 offen 10 DB3 offen 11 DB4 PD0 am AVR 12 DB5 PD1 am AVR 13 DB6 PD2 am AVR 14 DB7 PD3 am AVR Siehe da, der Text "Test Hello World" erscheint. JEtzt muss ich nur noch mein eigentliches Projekt zum laufen kriegen (Thermometer mit ATMega16 auf LCD oder Digitale Uhr mit ATMega8 und LCD) Danke für eure Hilfe aber ich denke ich werde mich morgen nochmal melden, wegen meinem Projekt aus dem anderen Thread.
321x... schrob: >Danke für eure Hilfe aber ich denke ich werde mich morgen nochmal >melden. Ist das eine Drohung? ;-) Alte Volksweisheit: Wer die Flinte nicht in's Korn wirft, macht auch den Mähdrescher nicht kaputt. MfG Paul
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.