Hallo Leute, Ich bins wieder der Neue, heute habe ich ein weiteres Problem für euch auch wenn ich weiss dass Ihr dass schon nicht mehr hören könnt, da das Thema hier wahrscheinlich schon 1000 mal besprochen wurden ist aber ich habe bei der Suche nix passendes gefunden. Tipp von mir: Man sollte die Suchfunktion hier mal stark verbessern mit einer ordendlichen Suchmaske (z.b. Suche mit Trennung der Programmiersprachen chips, etc)). Das wäre gut für alle Anfänger (wie mich). Weil als Neuling ist es echt kompliziert hier nach schon behandelten Sachen zu suchen. Nun zu meinen Problem: Ich habe den ATtiny 2313 und ein LCD (162C/mit KS0066u)und programmiere über BASCOM. (4-BIT mode ohne Busy flag, KS0066U soll meines Wissens nach kompartibel sein) Habe es genau so gemacht wie im Anhang beschrieben und ausserdem alle freien Pins des LCDs auf GND gelegt. Aber es passiert nix auf dem LCD habe den Poti so eingestellt das der graue Balken erkennbar ist (aber nicht zu stark). Außerdem habe ich auch schon ein paar Messungen vorgenommen : Versorgungsspannung LCD, Chip = 5,15 V R/S Leitung am LCD = 5,00 V Datenleitungen D4 bis D7 = 5,10V Reset vom Chip = 5,15V Bei der Messung von der Enable Leitung habe ich festgestellt das dort 0,14V anliegen ich glaub das ist der Fehler Nr. 1 da man ja dort 5V benötigt für die LCD Freischaltung. Da ich diesen Wert auch direkt am Pin des Chips gemessen habe gehe ich davon aus dass es ein Programmfehler ist oder? Meine Datenleitungen liegen wie im Programm configuriert auf Port D . Aber vielleicht habt ihr ja noch ein paar Tipps bzw. Vorschläge die ich Versuchen könnte. Wäre super wenn einer mal ein Auge auf das Programm hätte obwohl ich das auch nur kopiert habe. Aber bin mir da nicht immer sicher (manchmal sieht man den Wald vor lauter Bäumen nicht, kennt Ihr ja bestimmt selber) Habe unten auch noch mal ein paar Links nach dennen ich es Nachgebaut habe. Vielen Dank schon mal . Mfg. D.P Guten Rutsch :-) Meine Quellen: http://www.rn-wissen.de/index.php/LCD-Modul_am_AVR http://www.stefan-buchgeher.info/elektronik/lcd/lcd_kap2.html#Kap2 http://www.stefan-buchgeher.info/elektronik/lcd/lcd_kap4.html#Kap4
Ich vermisse : $regfile = $crystal = Dein Tiny läuft mit 1MHz. > Da ich diesen Wert auch direkt am Pin des Chips gemessen habe gehe ich > davon aus dass es ein Programmfehler ist oder? Wie gemessen (womit) ? Enable steht doch nicht dauerhaft an. In dem Schaltplan sind D0-D3 nicht auf GND gelegt !
>In dem Schaltplan sind D0-D3 nicht auf GND gelegt !
Und das sollte man auch nicht tun.
Sabberlotte schrieb: > Ich vermisse : > > $regfile = > $crystal = > > Dein Tiny läuft mit 1MHz. > > >> Da ich diesen Wert auch direkt am Pin des Chips gemessen habe gehe ich >> davon aus dass es ein Programmfehler ist oder? > > Wie gemessen (womit) ? > Enable steht doch nicht dauerhaft an. > > In dem Schaltplan sind D0-D3 nicht auf GND gelegt ! Soll man auch nicht tun, da die Pins PullUp Widerstände haben. Offen lassen ist besser. Aber ja, seine Aussage stimmt nicht mit dem Schaltplan überein.
> Aber es passiert nix auf dem LCD habe den Poti so eingestellt das der > graue Balken erkennbar ist (aber nicht zu stark). Ich würde ein Päuschen nach "Helle World" einlegen (Wait 2 oder so), sonst kommste mit dem Lesen nicht so recht mit, wenn der Text in der Schleife sofort wieder gelöscht wird. Oder, schmeiss das CLS zum Testen raus.
Ich vermisse da eine LCD-Initialisierung: . . . Config Lcdpin .... Initlcd Do . . .
moin, Also ich habe das Programm verändert (siehe Anhang). Datenleitung die nicht benötigt werden, sind nun nicht mehr auf Masse !! Muss ich HW, Soft stack und Framesize angeben ? Und kann ich mit irgendwelchen "Haushaltsmitteln" feststellen ob der LCD kaputt ist? wenn ja wie? Ist der crystal richtig , diese 9,6 MHZ habe ich irgendwo aus Netz. Weiss aber nicht ob es richtig ist und muss ich nicht bei so einer Angabe auch irgendwas bei den fused and lockbits verändern?
Dominik P. schrieb: > Muss ich HW, Soft stack und Framesize angeben ? Momentan noch nicht. Dominik P. schrieb: > Ist der crystal richtig , diese 9,6 MHZ habe ich irgendwo aus Netz. Nein. Schauen wir mal deine Fuses an. Da steht "Int RC Osc. 8Mhz". D.H. interner Oszillator ist deine eingestellte Taktquelle, mit 8MHz. Dann steht etwas oberhalb noch "Divide clock by 8 enabled". Dein Takt aus dem internen Oszillator wird also noch durch 8 geteilt. Dein Controller läuft also mit 1MHz. Bitte das bei "crystal" eintragen. Sonst stimmen die Timings für's Display nämlich sowieso nicht.
So habe es jetzt nochmal umgeschrieben. crystal = 1000000 Funktioniert aber leider immer noch nicht. Muss ich noch eine Datei ins Programm einfügen für das LCD Modul da er ja nicht den HD44780 chip hat sondern den KS0066u ? Ich habe nämlich so was ähnliches schonmal irgendwo gelesen.
Probier mal die HEX Datei im Anhang. Wenn die auch nicht geht ist die Wahrscheinlichkeit hoch das dein Display falsch angeschlossen ist. Mach mal ein Foto von deinem Aufbau.
CONFIG LCD = LCDtype , CHIPSET=KS077
> Ich habe nämlich so was ähnliches schonmal irgendwo gelesen.
Hast du schon die Hilfe-Funktion gefunden ?
Da gibt es auch Beispiele..............
Hängt Dein Enable (PORTD.5) auch wirklich am Pin 6 von Deinem Display? (sofern Du wirklich auch Deine von Dir angegebene LCD_Ansteuerung nach Bild 3 verwendest)
@ holger habe gerade deine hex datei ausprobiert. Es funktioniert :-) Das LCD Modul zeigt mir Line 1 Line 2 SUPER!!! Aber da ich persönlich die Hex Datei nicht lesen kann, erzähl mir bitte was du da gemacht hast.
Dominik P. schrieb: > mit > einer ordendlichen Suchmaske (z.b. Suche mit Trennung der > Programmiersprachen chips, etc)). Das wäre gut für alle Anfänger (wie > mich). Das würde voraussetzen, daß die Beiträge entsprechend strukturiert oder indiziert sind. Sind sie aber nicht. Manchmal sind solche Angaben auch nicht wichtig (z.B. bei einer allgemeinen algorithmischen Fragestellung, oder einem zu diskutiernenden Lösungsansatz).
:
Bearbeitet durch User
Ja naturlich hast du Recht demnach müsste man auch bei der Erstellung neuer Beiträge zusätzliche Angaben machen aber warum nicht? Z.B: Neuer Beitrag Name: ... Betreff: ... Chip: ... "(ATtiny 2313)" Programmiersprache: ... "(Basic, C,C+ usw.)" Weitere Hardware: ... "(LCD Modul)" Kurze Fehlerbeschreibung: ... "(LCD Modul funktioniert nicht)" Text: ... "(genau Beschreibung wie gehabt)" Ob man dann die weiteren Angaben macht kann ja auch jeder selber entscheiden. Demnach könnte man auch eine zuverlässige Suchmaske erstellen. Aber das ist nur ein Vorschlag von mir. Ich wollte mich ja damit nicht beschweren nur ein Vorschlag einwerfen.
So aber nun habe ich immer noch mein LCD Problem. Das Programm von Holger (siehe Hex datei) funktioniert mein Programm aber nicht. Hat jemand noch eine Idee? Wäre super von Dir Holger wenn du mir erklären könntest was du anders gemacht hast als ich. Mfg.
Habe jetzt ma die do , loop Schleife entfernt. Aber funktioniert auch nicht. Vielleicht kann mir mal einer mal BITTE eine Bascom-Muster Datei schicken (anhängen) die bei Ihm funktioniert. Damit ich weiß wie ein "Musterprogramm aussieht). Werde dann auch ma Bilder senden mit dem Versuchsaufbau. Danke,
Hi >Vielleicht kann mir mal einer mal BITTE eine Bascom-Muster Datei >schicken (anhängen) Hast du eigentlich schon mal in der Bascom-Hilfe nachgesehen? MfG Spess
Probiere mal
1 | $regfile = "ATtiny2313.dat" |
statt
1 | $regfile = "Attiny2313.dat" |
:
Bearbeitet durch User
Luca E. schrieb: > Probiere mal $regfile = "ATtiny2313.dat" statt "Attiny2313.dat" Das ändert nichts. Es gibt aber eine andere DAT Datei für den Attiny2313A. Wird aber auch nichts ändern. Ich tippe auf einen Verdrahtungsfehler. Bisher haben wir auch kein Bild vom Aufbau gesehen.
Kay schrieb: > Verdrahtungsfehler Glaube ich weniger, da das Display mit dem Code "LCD_test.hex" von holger ja lief. Es gibt bei BASCOM auch noch den schönen Befehl "Config Lcdbus = 4", vielleicht hilft's? Oder stimmt da doch die Portzuordnung nicht? Im Schaltplan ganz oben geht E auf PC5. In seinem Programm steht "E=PORTD.5"? Ich möchte jetzt auch erst mal Bilder sehen.
:
Bearbeitet durch User
Könnte es sein, dass auf dem png ein $baud = ... nicht zu sehen ist? Das würde das UART aktivieren und dieses wiederum belegt PD1..0 Dominik P. schrieb: > Vielleicht kann mir mal einer mal BITTE eine Bascom-Muster Datei > schicken (anhängen) > die bei Ihm funktioniert. > Damit ich weiß wie ein "Musterprogramm aussieht). Andersrum wird ein Schuh draus: Du hängst Dein Programm an, und zwar als Originaldatei und nicht als Bildchen.
Dominik P. schrieb: > Meine Datenleitungen liegen wie im Programm configuriert auf Port D Ok, hat sich erledigt.
1 | $regfile = "Attiny2313.dat" |
2 | $crystal = 9600000 |
3 | '$hwstack = 100 |
4 | '$swstack = 100 |
5 | '$framesize = 100 |
6 | |
7 | Config Lcd = 16 * 2 |
8 | Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , _ |
9 | Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 |
10 | Initlcd |
11 | |
12 | |
13 | Cls |
14 | Locate 1 , 1 |
15 | Lcd "Hello Welt" |
16 | |
17 | |
18 | End |
Das läuft bei mir einwandfrei
:
Bearbeitet durch User
Hab mir auch noch dein erstes Programm angesehen. Das "Do - Loop" ist da sehr kontraproduktiv, du beschreibst das LCD und löscht es sofort wieder. Da ist kaum was sichtbar. In meinem Teil fehlt das. Wenn du es unbedingt haben willst musst du ein "Wait x" einfügen.
Hier ein paar Anhänge. Vielen Dank, Ich hoffe Ihr könnt damit was anfangen.
Geil....7MB grosse Bilder. ....und das mit meiner 1000er DSL-Leitung.
Hallo, Warum sind den die vier LCD-Datenleitungen verbunden ? Steht das so im Datenblatt deines LCD ? - ich denke nicht. Dann würde ich die Zuleitungen zum LCD so kurz als möglich ausführen. Abblock 100nF Kondensatoren direkt an den Baugruppen verteilen.
Ja ein sorry für diese ungünstigen Bildformate. Die Datenleitungen D0-3 sind deshalb verbunden da ich diese zuerst auf GND liegen hatten.
So jetzt läuft es :::---)))) Und nun die große Auflösung: Aber eigentlich weiß ich das selber nicht so richtig ich habe mein Ursprungprogramm was ich hier ganz am Anfang angehängt habe aus dem Internet kopiert und bei Bascom nur eingefügt, ich glaub das war Fehler Nr.:1 Fehler Nr. 2 : Ich habe beim Programmieren nie vorher manuell erased sondern immer gleich auf write dann bekomme ich zwar eine Meldung "writen to flash" aber es passiert einfach nix. (Und ja ich weiß normalerweise erased er autom. aber habe das ein paar mal mit meinen LED blink, blink Programme ausprobiert da ist das auch so, vielleicht ist das auch nur mit meinem Diamex USB so umständlich) Dank Euer Hilfe Eine Frage habe ich noch, auf dem LCD steht nach meiner Nachricht immer noch so ein Leerzeichen Strich. Z.B AUF dem LCD wird: HALLO WELT_ angezeigt, wofür ist der Strich nach Welt und wie bekommt man den weg.
Der Strich heisst "Cursor" und den schaltet man vor Textausgabe mit dem Befehl "CURSOR OFF" ab.
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.