mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit YL-162-90


Autor: Nils Wiechert (darky9312)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ICh habe mir letztens das YL-162-90 LCD bei Pollin bestellt da ich bei 
meinem alten die Versorgungsspannung falsch angeschlossen habe, da ich 
das bei dem noch auf einem Steckbrett gemacht habe... das hat dem aber 
leider nicht so gut gefallen. Naja es geht ja um das neue Display. Als 
ich das zum ersten mal angeschlossen habe hat es nicht angezeigt nicht 
einmal schwarze Balken. Gestern kam ich dann auf die Idee mal im 
Internet danach zu suchen, wo ich irgendwo erfuhr, dass mehrere Leute 
mti dem Display Probleme haben, und dass dieses DIsplay eine Negative 
Kontrastspannung benötigt. Das habe ich über 2 in Reihe geschaltete 
Akkus die mit + an Masse und mit - an der Kontrastspannung liegen. Das 
funktioniert auch wunderbar, allerdings zeigt das Diplay nun nur 2 
schwarze Balken an (siehe Foto). Angeschlossen habe ich das display wie 
folgt:
1= Gnd
2= +5V
3= ca. -2,6V
4= PA4
5= Gnd
6= PA5
7= NC
8= NC
9= NC
10= NC
11= PA0
12= PA1
13= PA2
14= PA3
15= +5V für Beleuchtung

Dass der Mikrocontroller auch was sendet kann man an den leuchten Leds 
sehen, an denen ich testeshalber das Signal ausgeben lasse, was auch das 
LCD bekommt.

Hat von euch vielleicht einer eine Idee warum das LCD nur die Balken 
anzeigt?
Mfg
Nils

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
....  und woraus schliesst du, dass -2,6V die richtige Kontrastspannung 
ist ?
.. was passiert bei zuviel Kontrast ?

gruss k

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datenblatt stand Kontrastspannung -2,5V, da dürften -2,6 doch auch 
noch in Ordnung sein oder?

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm doch mal ein poti und regel ein wenig herum.

gruss K

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verzweifel gerade bei der Überlegung wie das Poti dann angeschlossen 
werden muss... Ich habe schon öfter gelesen dass das als Spannungsteiler 
mit dem Schleifer am eingang für die Kontrastspannung angeschlossen 
wird. Aber wie kommt die Batterie dann da dran?

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich wusste es !

+Bat an Masse und an Poti.
-Bat an Poti
poti schleifer = kontrast

Poti ca. 10KOhm oder so

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da kommen jetzt sehr interessante Sachen heraus: wenn ich das Poti ganz 
zur einen Seite drehe dann ist der Kontrast da genauso zur anderen Seite 
und in Mittelstellung, wenn ich aber ein wenig zu r Seite gehe vond er 
Mittelstellung, dann sind nur ein paar Teile des Displays schwarz oder 
leicht schwarz, es handelt sich dabbei immer um 8 Blöcke sowohl oben als 
auch unten aber uunterschiedlich dunkel.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achja: was wusstest du?

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun,
ich hatte so das Gefühl, dass eine Frage bezüglich "wie schliesse ich 
das Poti an" folgen würde. .. und hatte recht.

Nun hast du ja eine regelbare Kontrastspannung zwischen 0 und -2,6V.
das ist schonmal gut.

Wenn trotzdem nicht geht stimmt wohl was anderes nicht.

Also bitte weitersuchen .

Gruss K

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm ich werde mal wenn ich zuhause bin die Spannung am Kontrasteingang 
messen. Vielleicht stimmt da ja etwas nicht. Würde mcih aber wundern 
aber wer weiß. Jetzt bin ich erstmal in der schule xD. Wenn sonst noch 
jemand eine andere idee hat, immer her damit...

Autor: Shuzz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also im Datenblatt bei Pollin 
(http://www.pollin.de/shop/downloads/D120060D.PDF) sehe ich nix von 
-2.5V Kontrastspannung.

Versuch mal folgendes: Schliess Deinen Poti mal zwischen - vom Akku 
(-2.5V) und Deinen +5V an. Dann versuch nochmal den Kontrast einzuregeln 
und wenn Du die optimale Einstellung gefunden hast misst Du nochmal die 
Spannung am Schleifer gegen die Masse Deiner Schaltung (0V).

Ich vermute, Du wirst auf Deine Akkus verzichten können...
(Die meisten LCDs brauchen ne Kontrastspannung von etwas über 0V, 
normalerweise reicht also ein Poti zwischen Masse und der 
Versorgungsspannung.)

Autor: Nils Wiechert (darky9312)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Das ist das Datenblatt das ich mir noch runtergeladen habe, weil in dem 
von pollin nihcts zu kontrastspannung stand. Das hier kann man aber auch 
nicht als Datenblatt bezeichnen, ist ja nur die eine Seite, aber alles 
was man zu dem Display bekommt.
Im LCD Tutorial von dieser Seite stant doch das bei den meisten Displays 
eigentlich die Kontrastdpannung auf 0V (Gnd) gelegt werden sollte, was 
bei meinem anderen Display auch gut funktioniert hat.
Die Idee mit Poti zwischen -2,5 und +5V werde ich zuhause sofort 
ausprobieren :) danke
Mfg
Nils

Autor: Shuzz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber das Poti nicht die ganze Zeit dranlassen, sonst saugt's Dir 
irgendwann auch die Batterien aus... ^^

Wie gesagt: Ich vermute stark, dass Du das Poti einfach zwischen 0V und 
+5V hängen kannst und es dann passt.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe an dem Akkupack extra für den Fall noch einen Schalter 
angebracht :D
Ansonsten: sind halt akkus ne?

Autor: Nils Wiechert (darky9312)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Als ich vorhin nach Hause kam hab ichrstmal das Poti durchgemessen und 
gemerkt, dass das iwie kaputt ist, am Widerstand direkt ist garnichts zu 
messen und zwischen Beinchen und Schleifer immer 12kOhm. Also noch ein 
anderes Poti rausegsucht udn das ganze mal auf ner Platine versucht. 
Erst hab ichs nochmal mit der Methode ohne die +5V versucht, aber da 
konnte ich schön zzwischen -2,7V und 0 regeln aber das Display tat nix. 
Dann hab ichs nochmal mit den 5V versucht und da kam dann das raus was 
auf den Bildern zu sehen ist. bei -2,7 tat sich nix, oberhalb von 0V 
kamen die schon erwähnten verscheidenen Graustufen die immer in 8 
Blöcken sind.
Wenn ich auf 5V gedreht habe war das Display richtig schwarz aber 
angezeigt hat es nix...
hast du vielleicht noch eine Idee? ich bin kurz davor das teil an die 
Wand zu schmeißen und drauf rumzutrampeln ;(
Mfg
Nils

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat keiner eine Idee?

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hat keiner eine Idee?

Der Fehler liegt offensichtlich in Zeile 42.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Zeile 42?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Welche Zeile 42?

Gut erkannt;)

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
???????????????????????????????????? :D

Autor: Magnetus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat keiner eine "gute" Idee???? ^^  Und NEIN die Antwort ist nicht 42 xD

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hat keiner eine "gute" Idee???? ^^  Und NEIN die Antwort ist nicht 42 xD

Also entweder deine Software ist faul oder das Display hinüber.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Juhuu... Kann es denn sein dass die Softwar für das eine Display nicht 
mit einem anderen Display funktioniert auch wenn sie kompatible 
Kontroller haben?

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... oder das Kabel zu lang
... oder was falsch angeschlossen
... oder oder

ich glaube, man will dir sagen, dass du vielleicht mehr Infos rausrücken
solltest, damit man die Zeile 42 besser nachvollziehen kann.

es ist nämlich so, dass wenn z.B die Initialisierung nich korrekt ist,
ein ähnliches Fehlerbild auftauchen kann

gruss K.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die LCD-Routinen hab ich eigentlich fast komplett von denen aus dem 
Forum abgetippt aber vielleicht stimmt ja trotzdem etwas nicht:
.equ lcd_port = PORTA
.equ lcd_ddr = DDRA
.equ lcd_port2 = PORTD
.equ lcd_ddr2 = DDRD
.equ XTAL = 1000000
;
;sendet ein datenbyte an das LCD
lcd_data:
    push temp1
    push temp2
    mov temp2,temp1
;
    swap temp1
    andi temp1,0b00001111
    sbr temp1,1<<4
    out lcd_port,temp1
    out lcd_port2,temp1
    rcall lcd_enable
;    
    andi temp2,0b00001111
    sbr temp2,1<<4
    out lcd_port,temp2
    out lcd_port2,temp2
    rcall lcd_enable  
    pop temp2
    pop temp1
    ret
;sendet einen Befehl an das LCD
lcd_command:
    push temp1
    push temp2
    mov temp2,temp1     ; wie lcd_data, nur RS=0
    swap temp1
    andi temp1,0b00001111
    out lcd_port,temp1
    out lcd_port2,temp1
    rcall lcd_enable
    andi temp2,0b00001111
    out lcd_port,temp2
    out lcd_port2,temp2
    rcall lcd_enable
    rcall delay50us
    pop temp2
    pop temp1    
    ret
; erzeugt den Enable-Puls
;
; Bei höherem Takt (>= 8 MHz) kann es notwendig sein, 
; vor dem Enable High 1-2 Wartetakte (nop) einzufügen. 
lcd_enable:
    nop
    nop
    sbi lcd_port,5
    sbi lcd_port2,5
    nop
    nop
    nop
    cbi lcd_port,5
    cbi lcd_port2,5
    ret
;Pause nach jeder Uebertragune
delay50us:
    push temp1
    ldi temp1,(XTAL*50/3)/1000000
;
delay50us_:
    dec temp1
    brne delay50us_
    pop temp1
    ret
;Längere Pause für manche Befehle
delay5ms:
    push temp1    
    push temp2
    ldi temp1,(XTAL*5/607)/1000
WGLOOP0:ldi temp2,$C9
WGLOOP1:dec temp2
    brne WGLOOP1
    dec temp1
    brne WGLOOP0
    pop temp2
    pop temp1
    ret
delay1s:
    push temp1 
    push temp2
    ldi temp1,(XTAL*10)/100000000
WGLOOP2:ldi temp2,$C9
WGLOOP3:dec temp2
    brne WGLOOP3
    dec temp1
    brne WGLOOP2
    pop temp2
    pop temp1
    ret
; Initialisierung: muss ganz am Anfang vom programm aufgerufen werden
lcd_init:
    push temp1
    push temp3
    ldi temp3,255
powerupwait:
    rcall delay5ms  
    dec temp3
    brne powerupwait
    ldi temp1,0b00000011
    rcall delay50us
    out lcd_port,temp1
    out lcd_port2,temp1
    rcall lcd_enable
    rcall lcd_enable
    rcall lcd_enable
    ldi temp1,0b00000010      ; 4-Bit-Modus
    out lcd_port,temp1
    out lcd_port2,temp1
    rcall lcd_enable
    rcall delay5ms
    ldi temp1,0b00101000      ;4bit,2zeilen,5x8
    rcall lcd_command
    ldi temp1,0b00001100      ;Display ein,Cursor aus,kein blinken
    rcall lcd_command
    ldi temp1,0b00000100
    rcall lcd_command
    pop temp3
    pop temp1
    ret
;sendet den Befehl zur Löschung des Displays
lcd_clear:
    push temp1
    ldi temp1,0b0000001        ;Display löschen
    rcall lcd_command
    rcall delay5ms
    pop temp1
    ret
;sendet den Befehl: Cursor Home
lcd_home:
    push temp1
    ldi temp1,0b00000010
    rcall lcd_command
    rcall delay5ms
    pop temp1
    ret
lcd_flash_string:
    push temp1
    push ZH
    push ZL
;
lcd_flash_string_1:
    lpm  temp1,Z+
    cpi  temp1,0
    breq lcd_flash_string_2
    rcall lcd_data
    rjmp lcd_flash_string_1

lcd_flash_string_2:
    pop ZL
    pop ZH
    pop temp1
    ret
; Dezimalzahlen ausgeben
lcd_number:
           push temp1            ; die Funktion verändert temp1 und temp2,
           push temp2            ; also sichern wir den Inhalt, um ihn am Ende
                                  ; wieder herstellen zu können
;
           mov   temp2,temp1     ; das Register temp1 frei machen
                                  ; abzählen wieviele Hunderter
                                  ; in der Zahl enthalten sind
;** Hunderter ** 
           ldi   temp1,'0'-1     ; temp1 mit ASCII '0'-1 vorladen
lcd_number_1:
           inc   temp1            ; ASCII erhöhen (somit ist nach dem ersten
                                  ; Durchlauf eine '0' in temp1)
           subi  temp2,100       ; 100 abziehen
           brcc  lcd_number_1     ; ist dadurch kein Unterlauf entstanden?
                                  ; nein, dann zurück zu lcd_number_1
           subi  temp2,-100      ; 100 wieder dazuzählen, da die
                                  ; vorherhgehende Schleife 100 zuviel
                                  ; abgezogen hat
           rcall lcd_data         ; die Hunderterstelle ausgeben

;** Zehner  **
           ldi   temp1,'0'-1     ; temp1 mit ASCII '0'-1 vorladen
lcd_number_2:
           inc   temp1            ; ASCII erhöhen (somit ist nach dem ersten
                                  ; Durchlauf eine '0' in temp1)
           subi  temp2,10        ; 10 abziehen
           brcc  lcd_number_2     ; ist dadurch kein Unterlauf enstanden?
                                  ; nein, dann zurück zu lcd_number_2
           subi  temp2,-10       ; 10 wieder dazuzählen, da die
                                  ; vorherhgehende Schleife 10 zuviel
                                  ; abgezogen hat
           rcall lcd_data         ; die Zehnerstelle ausgeben
;
;** Einer **        
           ldi   temp1,'0'       ; die Zahl in temp2 ist jetzt im Bereich
           add   temp1,temp2     ; 0 bis 9. Einfach nur den ASCII Code für
           rcall lcd_data         ; '0' dazu addieren und wir erhalten dierekt
                                  ; den ASCII Code für die Ziffer
;

           pop   temp2            ; den gesicherten Inhalt von temp2 und temp1
           pop   temp1            ; wieder herstellen
           ret                    ; und zurück 
lcd_laufschrift:        ; noch nicht fertig
    push temp1
    push temp2
    mov temp2,temp1
;
    swap temp1
    andi temp1,0b00001111
    sbr temp1,1<<4
    out lcd_port,temp1
    out lcd_port2,temp1
    rcall lcd_enable
;    
    andi temp2,0b00001111
    sbr temp2,1<<4
    out lcd_port,temp2
    out lcd_port2,temp1
    rcall lcd_enable  
    rcall delay50us
    pop temp2
    pop temp1
    ret
und das ist das Hauptprogramm:
.include "m32def.inc"
;
.def temp1 = R16
.def temp2 = R17
.def temp3 = R18
    ldi temp1,HIGH(RAMEND)
    out SPH,temp1
    ldi temp1,LOW(RAMEND)
    out SPL,temp1
    ldi temp1,0xFF
    out lcd_ddr,temp1
    out lcd_ddr2,temp1
;
;
;    
    rcall lcd_init
    rcall lcd_clear
Textausgabe:
    rcall lcd_clear
    ldi ZL,LOW(text*2)
    ldi ZH,HIGH(text*2)

    rcall lcd_flash_string
    rcall delay1s
    rcall delay1s
    rcall delay1s
    rcall delay1s

    rcall lcd_clear
    ldi ZL,LOW(text2*2) 
    ldi ZH,HIGH(text2*2)

    rcall lcd_flash_string
    rcall delay1s
    rcall delay1s
    rcall delay1s
    rcall delay1s
loop:
    rjmp Textausgabe
;
text:
    .db"V&M Deutschland",0
text2:  
    .db"Azubis Elektro",0
.include "Lcd_Routinen.asm"
könnt ihr damit etwas anfangen?

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.. und was hast du für einen Prozessor ?
.. und auf wieviel Mhz ?

.. ich sehe in deinem Anschlussplan die Verwendung von PORT A
nicht jedoch Port D.
In dem Programm wird aber meines  Erachtens auch Port D verwendet

Gruss K

p.S.
da es ja so scheint, als wüsstest du nicht wirklich, was du tust,
könnte ich es mir als vorteilhaft vorstellen. wenn du z.B. mit
der kostenlosen Bscom Testversion erstmal deine Schaltung prüfst
um dann am ASM weiter zu arbeiten

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe das LCD an PortA, an PORTD sind Leds, damit ich sehen kann ob 
auch was ans LCD gesendet wird, denn so ist ja an PortA das gleiche wie 
an PortD oder?
Ich habe einen Atmega32 der mit den interen 1 mhz läuft
Gruss
Nils

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem alten Lcd hat das alles doch funktioniert, es funktioniert 
nichtmehr seitdem ich das neue Lcd dranhabe.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...  ja , und wenn ich so resumiere:
Das alte Display ist kaputt wegen Verpolung ?
Ist denn der Prozessor noch in Ordnung ?
Mal die massgeblichen Portpins per Testprogramm ausprobiert ?

Gruss K.

Autor: Icke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1. Die negative Kontrastspannung ist OK, das Display ist nämlich eines 
mit erweitertem Temperaturbereich.

2.
>Die LCD-Routinen hab ich eigentlich fast komplett von denen aus dem
>Forum abgetippt aber vielleicht stimmt ja trotzdem etwas nicht:

Da liegt der Hund begraben. Abschreiben bringt nix. Du mußt auch 
VERSTEHEN, was du da in den µc hineinhackst. Fang erstmal mit einem ganz 
einfachen Programm an, das nur das LCD initialisiert und ein einzelnes 
Zeichen ausgibt (z.B. A wie Anfänger). Das Tutorial ist dabei sehr 
hilfreich.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Klaus
ja das alte Display hatte ich falsch angeschlossen dann wurde es 
irgendwann warm und hat nur noch sehr komische Sachen angezeigt.
Der Prozessor funktioniert,ich habe auch an den Leitungen die am LCD 
sind einen TTL-Tester ebnutz um zu gucken ob auch was ankommt, die 
Antwort war ja.
Ich könnte mir noch eine Platine mit nem STecker drauf basteln der an 
die Steckerleiste passt wo das LCD dran ist udn mir das dann mal 
angucken.
danke für den Tipp.
@icke
Ich habe mir natürlich auch angesehen was die Routinen machen, 
allerdings deswegen nicht einfach die aus dem Tutorial genommen, weil 
ich mir das so besser bei bringen kann. Ich kann aber nochmal für dieses 
Display eine neue Routine schreiben vllt bringt das ja was, weil ich 
irgendwo aus Versehen etwas geändert habe. Auch werde ich wenn ich 
wieder zuhause bin mal ausprobieren ein kleines Mini-Programm zu 
schreiben was nur einen Buchstaben auf dem Display ausgibt.
danke für eure Hilfe ich melde mich nachher nocheinmal
Grüße
Nils

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglicherweise bist Du einfach zu schnell:
lcd_enable:
    nop
    nop
    sbi lcd_port,5
    sbi lcd_port2,5
    nop
    nop
    nop
    cbi lcd_port,5
    cbi lcd_port2,5
    ret

[..]

lcd_init:
    push temp1
    push temp3
    ldi temp3,255
powerupwait:
    rcall delay5ms  
    dec temp3
    brne powerupwait
    ldi temp1,0b00000011
    rcall delay50us
    out lcd_port,temp1
    out lcd_port2,temp1
    rcall lcd_enable
                              <- hier Pause
    rcall lcd_enable
                              <- hier Pause
    rcall lcd_enable
                              <- hier Pause
    ldi temp1,0b00000010      ; 4-Bit-Modus
[..]

Wie lange die Pausen dauern müssen steht im Datenblatt.

HTH

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm dann werde ich das nochmal versuchen. Obwohl bei temp3 im Tut nur 50 
drinsteht habe ich da schon 255 weil ich mal gelesen hatte das die Pause 
nach dem einschalten manchmal länger sein muss und dachte die wäre damit 
gemeint. Leider findet man über dieses Display keine gescheites 
Datenblatt mit Angaben zu den Initialisierungszeiten... ;-(
wie genau müssen diese Pausen sein? Kann man da evtl. auch ein bisschen 
rumprobieren?
Grüße Nils

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt ein hervorragendes Datenblatt [1]. Auf Seite 47/213 ist die 
Initialisierung im 4Bit-Modus grafisch dargestellt. Bei der Gelegenheit 
kannst auch gleich den Rest vom Datenblatt studieren ;-)

Behelfsweise gibts da [2] fertigen Code.

HTH

[1] 
http://www.datasheetarchive.com/pdf-datasheets/Dat...
[2] http://www.mikrocontroller.net/articles/HD44780

Autor: g457 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe es jetzt mit den Routines aus dem Tutorial versucht
.include "m32def.inc"
.def temp1 = R16

    ldi temp1,LOW(RAMEND)
    out SPL,temp1
    ldi temp1,HIGH(RAMEND)
    out SPH,temp1

    ldi temp1,0xFF
    out lcd_ddr,temp1
    rcall lcd_init
    rcall lcd_clear

    ldi temp1,'T'
    rcall lcd_data
.include "lcd-routines.asm"
das ist mein Hauptcode, die Ports in den Routines hab ich verstellt.
Aber das Display will kein T anzeigen :/
Ist das Programm denn richtig?

Autor: holger (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
>das ist mein Hauptcode, die Ports in den Routines hab ich verstellt.
>Aber das Display will kein T anzeigen :/

Was zeigt es denn an?

>Ist das Programm denn richtig?

Keine Ahnung.

Funktioniert die HEX Datei im Anhang?

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es zeigt weiterhin nur die schwarzen Balken an...

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein das Programm will auch nicht ;(
Langsam glaub ich das Dsplay ist hinüber ;-(
traurige Grüße
Nils

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es zeigt weiterhin nur die schwarzen Balken an...

Letzte Chance: Dreh mal am Kontrast.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon probiert, ich lad gleich mal die akus nochmal auf glaub zwar niht 
dass das was bringt aber man kan ja hoffen ^^
Wenn das nix bringt kauf ich mir bei Pollin ein neues aber nicht nochmal 
das Schrottteil...
Danke für eure Hilfe
Grüße
Nils

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Schon probiert, ich lad gleich mal die akus nochmal auf glaub zwar niht
>dass das was bringt aber man kan ja hoffen ^^

Nee, nich aufladen. Spannung runterdrehen. Wenn bei -2.6V alles
schwarz ist dann mal mit -1.5V oder weniger versuchen. Ändert
sich der Kontrast dann?

Könnte aber auch immer noch ein Verdrahtungsfehler sein.

Autor: Nils Wiechert (darky9312)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne wenn ich runtergehe dann kommen wieder die tollen verschiedenen 
Dunkelheitsstufen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.