Hab aus dem Tutorial das Programm weiter unten genommen den m8def.inc durch m16def.inc getauscht, da ich einen mega16 nehme und in Microprozessor mit Ponyprog reingebrannt und alles ok aber dann sollte auf dem Display Test stehen machts aber nich sondern sind immernoch die beiden Balken zu sehen. Port D is bei dem Mega 16 auch genommen worden. Sieht jemand was da falsch läuft?ich benutze das Pollin Board V2.0 und das LCD is das Wintek WD-C2704M-1HNN .include "m16def.inc" .def temp1 = r16 .def temp2 = r17 .def temp3 = r18 ldi temp1, LOW(RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, temp1 ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, temp1 ldi temp1, 0xFF ; Port D = Ausgang out DDRD, temp1 rcall lcd_init ; Display initialisieren rcall lcd_clear ; Display löschen ldi temp1, 'T' ; Zeichen anzeigen rcall lcd_data ldi temp1, 'e' ; Zeichen anzeigen rcall lcd_data ldi temp1, 's' ; Zeichen anzeigen rcall lcd_data ldi temp1, 't' ; Zeichen anzeigen rcall lcd_data loop: rjmp loop .include "lcd-routines.asm" ; LCD-Routinen werden hier eingefügt
Die Sau die. Balken -> Display uninitialisiert. Haste die Warteschleifen an deinen Quarz/Frequenz angepasst? Laenger geht immer kuerzer geht nimmer. Also lieber zuviel warten als zuwenig. cu Tarzanwiejane
ch wollte erstmal den quarz im microcontroller nehmen oder ist das gänzlich unmöglich dass er das richtig anziegt? der läuft doch mit 1Mhz also müsste doch langsam genug sein
Hallo Christoph, hast Du berücksichtigt, daß dieses Display 2 Controller hat? Gruß, Reiner
Christoph Erstmalegal wrote: > ch wollte erstmal den quarz im microcontroller nehmen Es gibt keinen "Quarz im Mikrocontroller"! Da ist ein RC-Oszillator drin!! > oder ist das gänzlich unmöglich dass er das richtig anziegt? der läuft doch > mit 1Mhz also müsste doch langsam genug sein Der interne RC-Oszi ist nur dann kritisch, wenn man sehr genaues Timing benötigt (z.B. bei asynchroner serieller Datenübertragung). Das ist bei Dir nicht der Fall, also sollte es daran schonmal nicht liegen. Für das Display kannst Du problemlos den internen RC-Oszillator benutzen.
reiner1967 wrote: > Hallo Christoph, > > hast Du berücksichtigt, daß dieses Display 2 Controller hat? > > Gruß, Reiner Ja aber ich wollte erstmal nur die obere Hälfte nehmen also nur E1 um erstmal überhaupt irgendwas zu sehen und mich dann Schritt für Schritt vorzutasten. haut die initialisierung denn nicht über den code hin?
Hallo Christoph, der Code sollte schon tun, wenn er aus dem Tutorial ist. Bei dem Pollin-Board geht doch die RS232-Schnittstelle auf Port D des MEGA32. Stecken da evtl. noch die Jumper? Gruß, Reiner
ich benutze beim pollin board die Rs-232 -ISP schnittstelle und da gibt es keine jumper
liegt es vielleicht daran dass das programm vom tutorial für den mega 8 geschrieben wurde und ich nur die .include umgeändert habe in m16def.inc?
Christoph Erstmalegal wrote: > liegt es vielleicht daran dass das programm vom tutorial für den mega 8 > geschrieben wurde und ich nur die .include umgeändert habe in > m16def.inc? Da Du offensichtlich keine Interrupts benutzt und der Code nicht zu lang für die relativen Sprungbefehle sein dürfte, sollte es kein Problem sein, wenn alles richtig angeschlossen ist. Wenn Du allerdings Interrupts benutzen willst oder der Code eine gewisse Größe überschreitet, dann knallts.
Das Board hat zwei RS232-Schnittstellen, eine davon für den ISP. Die andere geht über die Jumper JP1 und JP2 an den Port D. Wenn diese Jumper gesteckt sind, dürfte es Probleme geben.
aber ponyprog sagt mir doch dass es richtig übertragen wurde das ist es ja was mich wundert. hab jetzt mal die jumper weg gemacht und es funktioniert immernoch nicht. irgendwie wird das dislay nicht initialisiert. hilft es wenn ich die anlötung vom display an microcontroller euch mal sage?
Neuer ATMega16? Display zufällig an Port C angeschlossen (zumindest teilweise)? JTAGEN-Fuse noch programmiert?
Hier hast Du ein kleines Programm, mit dem Du erst mal die oberen 2 Zeilen ansteuern kannst. MfG Paul
is aber bascom bekomm ich das auch mit ponyprog in den prozesssor gebrannt?und as genau muss ich mit der .bas datei machen? genaue anleitung bitte wie gesagt bin anfänger
Das ist der sogenannte Quelltext. Den habe ich Dir gesandt, damit Du dort drin eventuell das Programm an die Anschlußbelegung Deines Displays anpassen kannst. Wenn das dann für Dich stimmt, muß das Programm kompiliert werden, d.h es muß eine .hex-Datei erzeugt werden, die Du dann mit Ponyprog auf den Atmega übertragen mußt. Dazu kannst Du Dir bei: http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54 die Demo-Version von BASCOM laden. Wenn Bascom gestartet ist, legst Du dort drin eine neue Datei an und kopierst meinen Beispielcode dort hinein. Wenn Du dann auf "Compile" gehst, wird Dir die .hex_Datei erzeugt, die Du dann wie gewohnt in den MC übertragen kannst. MfG Paul
Paul Baumann wrote: > Das ist der sogenannte Quelltext. Den habe ich Dir gesandt, damit Du > dort drin eventuell das Programm an die Anschlußbelegung Deines Displays > anpassen kannst. Wenn das dann für Dich stimmt, muß das Programm > kompiliert werden, d.h es muß eine .hex-Datei erzeugt werden, die Du > dann mit Ponyprog auf den Atmega übertragen mußt. > Dazu kannst Du Dir bei: > > http://www.mcselec.com/index.php?option=com_docman&task=cat_view&gid=99&Itemid=54 > > die Demo-Version von BASCOM laden. > > Wenn Bascom gestartet ist, legst Du dort drin eine neue Datei an und > kopierst meinen Beispielcode dort hinein. Wenn Du dann auf "Compile" > gehst, wird Dir die .hex_Datei erzeugt, die Du dann wie gewohnt in den > MC übertragen kannst. > > MfG Paul ok habs heute ausprobiert und keine änderung. wie gesgat meine leitungen sind an port D angeschlossen ist das denn ok weil du irgendwas mit Port c schreibst aber oben hab es heute mal ausprobiert und alle C-Pors auf meine D-ports umgestellt. im LCd dispaly tut sich immernoch nichts aber nun blinken beide LEDs auf dem Board gleichzeitig im abstand von 500ms denk ich mal und der piezo lautsprecher piept dabei. is das nun eine fehlfunktion oder gewollt?
Du weißt aber schon, dass du die Steuerleitungen (CE1, CE2, RW, RS) auch ansteuern, sowie anschließen musst, an den Mikrocontroller? Und im Quelltext muss auch angepasst werden welche Leitung an welchem Pin hängt.
Simon Küppers wrote: > Du weißt aber schon, dass du die Steuerleitungen (CE1, CE2, RW, RS) auch > ansteuern, sowie anschließen musst, an den Mikrocontroller? Und im > Quelltext muss auch angepasst werden welche Leitung an welchem Pin > hängt. ich bin der meinung ich hab es richtig. hmm ich schreibe heute abend nochmal genau was ich wo vom microcontroller ans display angeschlossen habe.
Ganz grünau! :-) Poste erst mal, WIE Du das Display angeschlossen hast. Es müssen mindestens 10 Leitungen vom Display belegt sein, (ohne Beleuchtung), damit es etwas wird. Vorher brauchen wir gar nicht weiter zu raten. ;-) MfG Paul
also so richtig hab ich es dann doch noch niht verstanden hab ich den eindruck. wie ich nutze den code 1 Vss Masse Masse Gnd '2 Vdd + 5v Betriebsspannung + 5v '3 Vo 0 .. 1 , 5v( -2.. -5v) Displayspannung(kontrast) '4 Rs H / L Register Select '5 R/W H / L H : Read / L : Write '6 E H Enable '7 D0 H / L Datenleitung 0(lsb) '8 D1 H / L Datenleitung 1 '9 D2 H / L Datenleitung 2 '10 D3 H / L Datenleitung 3 '11 D4 H / L Datenleitung 4 '12 D5 H / L Datenleitung 5 '13 D6 H / L Datenleitung 6 '14 D7 H / L Datenleitung 7(msb) '15 (optional) ? LED+ - Pluspol der LED-Beleuchtung '16 (optional) ? LED- - Minuspol der LED-Beleuchtung '$sim $regfile = "m16def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = PortD.5 , Db6 = PortD.6 , Db7 = PortD.7 , E = PortD.3 , Rs = PortD.2 Config Lcdbus = 4 'LCD im 4-Bit Modus Config PortD.1 = Output 'RW an Port D.1 PortD.1 = 0 'RW auf L legen Initlcd Do Cls Locate 1 , 3 Lcd "Guck och nur" Locate 2 , 4 Lcd "es klappt!" Waitms 500 Cls Loop so soll laut datenblatt des Wintek WD-C2704M-1HNN angesteuert werden 1 GND 9 D1 2 VDD +5V ± 5% 10 D2 3 VO (ca. 0…4V Kontrasteinstellung) 11 D3 4 RS 12 D4 5 R/W 13 D5 6 E1 (Controller obere Displayhälfte) 14 D6 7 E2 (Controller untere Displayhälfte) 15 D7 8 D0 und wo soll nun was angeschlossen werden?
Ich vermute, Du hast zuviele Baustellen gleichzeitig. Vielleicht solltest Du weniger "benutzen" sondern mehr versuchen zu "verstehen". Dazu müsstest Du aber erstmal etwas kleiner anfangen. Ehe das LCD dran ist, solltest Du in Hardware und der von Dir verwendeten Programmiersprache einigermaßen sattelfest sein. ...
Hannes Lux wrote: > Ich vermute, Du hast zuviele Baustellen gleichzeitig. Vielleicht > solltest Du weniger "benutzen" sondern mehr versuchen zu "verstehen". > Dazu müsstest Du aber erstmal etwas kleiner anfangen. Ehe das LCD dran > ist, solltest Du in Hardware und der von Dir verwendeten > Programmiersprache einigermaßen sattelfest sein. > > ... das ist richtig und die zugehörigen tele wie 7 segment anzeige sind schon bestellt minklusive lochrasterplatine für sauberen aufbau und weniger fehler. nur bis dahin wollte ich einfach mal so sehen ob es mit dem lcd klappt. das ist dann sozusagen richtige motivation das auszureizen
Also gut, da will ich mal sehen: Pin 1 an Masse Pin 2 an +5V Pin 3 an den Schleifer eines 10K-Potentiometers eine Seite des Potis an Masse die andere an +5V (zur Kontrasteinstellung) Pin 4 an PortD.2 Pin 5 an PortD.1 Pin 6 an PortD.3 Pin 7 bis 11 freilassen Pin 12 an PortD.4 Pin 13 an PortD.5 Pin 14 an PortD.6 Pin 15 an PortD.7 Da dieses Display 2 Controller hat, hat es auch 2 Enable-Eingänge (E1 und E2) Im Moment ist jetzt nur der erste im Gange und es werden dadurch auch nur die ersten beiden Zeilen angesteuert. So, da löte mal. MfG Paul
Paul Baumann wrote: > Also gut, da will ich mal sehen: > Da dieses Display 2 Controller hat, hat es auch 2 Enable-Eingänge (E1 > und E2) Im Moment ist jetzt nur der erste im Gange und es werden dadurch > auch nur die ersten beiden Zeilen angesteuert. So, da löte mal. > > MfG Paul und das programm kann so bleiben?
Na freilich, oder was denkst Du, warum ich mir die Mühe mache, die Anschlussbelegung auf Deine Codeänderung anzupassen?! ;-) MfG Paul
Paul Baumann wrote: > Na freilich, oder was denkst Du, warum ich mir die Mühe mache, die > Anschlussbelegung auf Deine Codeänderung anzupassen?! ;-) > > MfG Paul ok danke dir vielmals nen kühles blondes hinstell nun hast du feierabend verdient
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.