Forum: Mikrocontroller und Digitale Elektronik LCD Dispaly initialisieren!


von Karl M. (kaaziii)


Lesenswert?

Tag!

Ich bin gerade dabei, auf einen Displaytech 162A mittels Bascom und dem 
ATMEGA16 ein einfaches "Hallo" auf dem Display auszugeben...

Mein Display zeigt immer nur schwarze Rechtecke in der ersten Zeile, was 
bedeutet, dass das Display nicht richtig initialisiert wurde.

Dann steh ich an und frag mich: HÄ ? !!!

Bitte um eine rasche Hilfe ;-)

LG

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:

> Bitte um eine rasche Hilfe ;-)

Genau wie bei allen anderen

* Taktfrequenz überprüfen
* Schaltung überprüfen
* Verkabelung überprüfen
* Programm überprüfen


Frag dich selber: zu welchem Punkt hast du Informationen gegeben bzw. 
die Details dazu hergezeigt?
Wie sollen wir dir daher helfen, wenn du nichts herzeigst?

von mr. mo (Gast)


Lesenswert?

Hier ist doch das richtige Beispiel für einen Artikel für den 
Wettbewerb.

Titel: "HowTo: LCD Display richtig initialisieren"
Inhalt: Auf was muss ich achten, typische Fehler.

Das wäre vermutlich einer der nutzlichsten Artikel aller Zeiten. Die LCD 
Initialisierungs Frage gibt es fast täglich.

von Karl M. (kaaziii)


Lesenswert?

* Taktfrequenz überprüfen (check)
* Schaltung überprüfen (check)
* Verkabelung überprüfen (check)
* Programm überprüfen --> naja ;-) genau das wollen wir ja haben!


hat jemand einfach so ein kleines programm

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:
> * Taktfrequenz überprüfen (check)
> * Schaltung überprüfen (check)
> * Verkabelung überprüfen (check)

Das sagen sie alle.
Und trotzdem finden sich dann doch immer wieder Fehler in diesen 
Bereichen.
(Und ja. Ist mir auch schon passiert, dass ich felsenfest davon 
überzeugt war das LCD richtig angeschlossen zu haben und bei der 
Kontrolle hab ich gemerkt, dass die 4 Datenleitungen nicht auf DB4-DB7 
gehen sondern auf DB0-DB3, was natürlich eine Funktion verhindert)

> * Programm überprüfen --> naja ;-) genau das wollen wir ja haben!

Wo ist deines?

Ach komm. Das ist doch in BASCOM ein 7 Zeiler! Du wirst den doch wohl 
herzeigen können!

von Karl M. (kaaziii)


Lesenswert?

$hvstack = 128
$svstack = 128
$framesize = 128
COnfig Lcdpin = Pin , Db4 = PORT.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7 
= PORTV.5 , Rs = PortC.0 , E = PORTC.1
$baud = 9600
$crystal = 8000000

Cursor Off
Cls
Lcd "Hallo"
Lowerline
Lcd "v.1.1"
Locate 1.1

End

von Karl M. (kaaziii)


Lesenswert?

> Das sagen sie alle.
> Und trotzdem finden sich dann doch immer wieder Fehler in diesen
> Bereichen.
> (Und ja. Ist mir auch schon passiert, dass ich felsenfest davon
> überzeugt war das LCD richtig angeschlossen zu haben und bei der
> Kontrolle hab ich gemerkt, dass die 4 Datenleitungen nicht auf DB4-DB7
> gehen sondern auf DB0-DB3, was natürlich eine Funktion verhindert)
>


Wir haben die Platte und alles andere schon 100 mal überprüft. Da stimmt 
alles!

von Sam Sung (Gast)


Lesenswert?

Hallo Leute!!

Habe auch das gleiche Problem, bitte helft uns!!

von Karl M. (kaaziii)


Lesenswert?

Sam Sung schrieb:
> Hallo Leute!!
>
> Habe auch das gleiche Problem, bitte helft uns!!

@ Sams Sung
Was geht bei dir genau nicht? Haust du auch das Problem, dass der 
Displaytech nicht initialisiert wird?

von Sam Sung (Gast)


Lesenswert?

Ja!! Erste Zeile voller schwarzer Rechtecke!

von Karl M. (kaaziii)


Lesenswert?

Sam Sung schrieb:
> Ja!! Erste Zeile voller schwarzer Rechtecke!

Hm.. anscheinend hat hier niemand eine Lösung :'(

von Jochen R. (josch90)


Lesenswert?

Mal am Kontrast gedreht?

von Karl M. (kaaziii)


Lesenswert?

Jochen R. schrieb:
> Mal am Kontrast gedreht?

Alles gemacht, ja!

-> Ist der Code soweit richtig?

von Sam Sung (Gast)


Lesenswert?

Klar habe ich das!!

von Karl H. (kbuchegg)


Lesenswert?

ganz ehrlich
1
COnfig Lcdpin = Pin , Db4 = PORT.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7 
2
= PORTV.5 , Rs = PortC.0 , E = PORTC.1

verarsch wen anderen!


Einmal möchte ich dich noch daran erinnern: Du bist der der Hilfe 
braucht. Nicht wir!

von Karl M. (kaaziii)


Lesenswert?

Karl Heinz Buchegger schrieb:
> ganz ehrlich
>
1
> COnfig Lcdpin = Pin , Db4 = PORT.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7
2
> = PORTV.5 , Rs = PortC.0 , E = PORTC.1
3
>
>
> verarsch wen anderen!
>
>
> Einmal möchte ich dich noch daran erinnern: Du bist der der Hilfe
> braucht. Nicht wir!

war kein copy paste, da der code auf nem anderen rechner läuft!

Config Lcdpin = Pin , Db4 = PORTC.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7
= PORTC.5 , Rs = PORTC.0 , E = PORTC.1

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:
> Karl Heinz Buchegger schrieb:
>> ganz ehrlich
>>
1
>> COnfig Lcdpin = Pin , Db4 = PORT.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7
2
>> = PORTV.5 , Rs = PortC.0 , E = PORTC.1
3
>>
>>
>> verarsch wen anderen!
>>
>>
>> Einmal möchte ich dich noch daran erinnern: Du bist der der Hilfe
>> braucht. Nicht wir!
>
> war kein copy paste, da der code auf nem anderen rechner läuft!

Genau darum geht es.

Fährst du mit deinem Auto zum Mechaniker, wenn es klappert oder nimmst 
du das vom Nachbarn, weil es eh so ähnlich aussieht?

> Config Lcdpin = Pin , Db4 = PORTC.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7
> = PORTC.5 , Rs = PORTC.0 , E = PORTC.1

PORTC - AtMega16

-> JTAGEN Fuse abdrehen

von Karl M. (kaaziii)


Lesenswert?

hm, kenn mich in Bascom genau gar nicht aus - hab den code einfach von 
irgendwo aus dem netz!

wo soll ich das portc - atmega16 hinschreiben? bez wo soll ich JTAGEN 
Fuse abdrehen?

von spess53 (Gast)


Lesenswert?

Hi

>war kein copy paste, da der code auf nem anderen rechner läuft!

Aber nicht der, von Karl-Heinz zu Recht bemängelte Code.

>Db4 = PORT.2
>Db7 = PORTV.5

Um welchen Controller geht es überhaupt? Bei dei den 40pol. werden 
einige Leitungen des PortC im Auslieferzustand durch JTAG blockiert.

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:

> wo soll ich das portc - atmega16 hinschreiben?

Du sollst nicht das PORTC oder AtMega16 irgendwo hinschreiben.


Ein beliebter Fehler ist es, dass beim Mega16 die JTAGEN Fuse ab Werk 
gesetzt ist. Dadurch kann der Port C nicht wie gewohnt benutzt werden, 
weil dort das JTAG INterface herausgeführt ist. Einige der Pins am Port 
C stehen damit nicht unter deiner Kontrolle.

Die Abhilfe: Die JTAGEN Fuse steuert, ob JTAG aktiv ist oder nicht. Mit 
der Fuse das JTAG INterface abschalten, und du hast wieder die Kontrolle 
über den kompletten Port C.

> bez wo soll ich JTAGEN
> Fuse abdrehen?

Irgendwo in deinem Brennprogramm, mit dem du das Programm auf den µC 
überträgst, gibt es eine Möglichkeit die Fuses zu lesen, die JTAGEN Fuse 
abzuschalten und die Fuses wieder zu brennen.


> $crystal = 8000000
Wie hast du denn die 8Mhz eingestellt, wenn du nicht weißt, was Fuses 
sind und was man mit ihnen macht?

von Karl M. (kaaziii)


Lesenswert?

spess53 schrieb:
> Hi
>
>>war kein copy paste, da der code auf nem anderen rechner läuft!
>
> Aber nicht der, von Karl-Heinz zu Recht bemängelte Code.
>
>>Db4 = PORT.2
>>Db7 = PORTV.5
>
> Um welchen Controller geht es überhaupt? Bei dei den 40pol. werden
> einige Leitungen des PortC im Auslieferzustand durch JTAG blockiert.
>
> MfG Spess

Wir benutzen AVRDUDE um den Controller zu flashen.
Wie setzt man das JTAGEN FuseBit?

von Karl M. (kaaziii)


Lesenswert?

FuseBits sind gelegt auf  E4 sowie 99!

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:
> FuseBits sind gelegt auf  E4 sowie 99!

http://www.engbedded.com/fusecalc

von Karl M. (kaaziii)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Karl Müller schrieb:
>> FuseBits sind gelegt auf  E4 sowie 99!
>
> http://www.engbedded.com/fusecalc

Und jetzt?
Ich kenn mich einfach nicht mehr aus :(

Bitte um genaue schritte, was ich jetzt machen soll...

von Thomas D. (thomasderbastler)


Lesenswert?

Als kleiner Vorschlag :

$regfile = "m8def.dat"
$crystal = 16000000
$hwstack = 100
$swstack = 100
$framesize = 100


Config Lcd = 16 * 2
Cls
Cursor Off
-------------------------------
In Deinem Code :
COnfig Lcdpin = Pin , Db4 = PORT.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7
= PORTV.5 , Rs = PortC.0 , E = PORTC.1

Was ist db7=portV.5 ?
-------------------------------
Mein Beispiel :
Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portb.1 , Db5 = Portb.2 , 
Db4 = Portb.3 , E = Portb.4 , Rs = Portb.5

do
Locate 1 , 1
Lcd "Hallo"
loop

Ansonsten kannst hier gucken :

http://halvar.at/elektronik/kleiner_bascom_avr_kurs/lcd_textanzeige/

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:
> Karl Heinz Buchegger schrieb:
>> Karl Müller schrieb:
>>> FuseBits sind gelegt auf  E4 sowie 99!
>>
>> http://www.engbedded.com/fusecalc
>
> Und jetzt?
> Ich kenn mich einfach nicht mehr aus :(

Lass es. Such dir ein anderes Hobby.

>
> Bitte um genaue schritte, was ich jetzt machen soll...

Auf der Website den Meg16 auswählen.
Dann unten deine E4 und die 99 eingeben.
Auf Apply Values drücken, damit aus den Werten die Häkchen generiert 
werden.
Dann nach oben scrollen, den Haken bei JTAGEN rausnehmen.
Nach unten scrollen und was steht da bei den Fuse-Zahlen?
E4 D9
Das sind also deine Fuses, die ansonsten nichts verändern ausser JTAG 
abzuschalten.
Und die brennst du mit AVRDUDE

Was ist denn da jetzt schwer drann?
Da wage ich doch gar nicht daran zu denken, wie das wird, wenn du mal 
was programmieren sollst und man wirklich um 5 Ecken denken muss.

von Karl M. (kaaziii)


Lesenswert?

>> Bitte um genaue schritte, was ich jetzt machen soll...
>
> Auf der Website den Meg16 auswählen.
> Dann unten deine E4 und die 99 eingeben.
> Auf Apply Values drücken, damit aus den Werten die Häkchen generiert
> werden.
> Dann nach oben scrollen, den Haken bei JTAGEN rausnehmen.
> Nach unten scrollen und was steht da bei den Fuse-Zahlen?
> E4 D9
> Das sind also deine Fuses, die ansonsten nichts verändern ausser JTAG
> abzuschalten.
> Und die brennst du mit AVRDUDE
>
> Was ist denn da jetzt schwer drann?
> Da wage ich doch gar nicht daran zu denken, wie das wird, wenn du mal
> was programmieren sollst und man wirklich um 5 Ecken denken muss.

In Bascom werd ich nie wieder was machen ;-) Ist nur für einen Test 
zweck!

Meine Sprachen sind neben (html, css und javascript) C, C#, C++, Java, 
MySql! Im Bereich Bascom hab ich wie gesagt, nichts zu tun!

von Karl H. (kbuchegg)


Lesenswert?

Karl Müller schrieb:

> In Bascom werd ich nie wieder was machen ;-) Ist nur für einen Test
> zweck!

Das hat doch mit BASCOM nichts zu tun (Ausser das das sicher auch mit 
dem BASCOM Programmierdialog geht, wenn du deinen Brenner mit AVRDUDE 
ansteuern kannst)

Das ist ganz normales AVR-Handling. Dazu muss man sich halt ein wenig 
einlesen.

> Meine Sprachen sind neben (html, css und javascript) C, C#, C++, Java,
> MySql!

Dafür stellst du dich aber ziemlich d..... an

von Karl M. (kaaziii)


Lesenswert?

----------------
> In Deinem Code :
> COnfig Lcdpin = Pin , Db4 = PORT.2 , Db5 = PORTC.3 , Db6 = PORTC.4, Db7
> = PORTV.5 , Rs = PortC.0 , E = PORTC.1
>
> Was ist db7=portV.5 ?
> -------------------------------
> Mein Beispiel :
> Config Lcdpin = Pin , Db7 = Portb.0 , Db6 = Portb.1 , Db5 = Portb.2 ,
> Db4 = Portb.3 , E = Portb.4 , Rs = Portb.5

db7=portV = hab mich verschrieben! (C !!)

von Karl H. (kbuchegg)


Lesenswert?

Und?

Wars das JTAGEN?
Sagt ja keiner, dass nicht noch ein Problem vorliegen kann.

von kalle (Gast)


Lesenswert?

die Konfiguration von Db4 = PORT.2 sollte in Db4 = PORTC.2 umbenannt 
werden.

Ist die R/W Leitung fest mit Masse verbunden oder wurde die vergessen?

von robert_w (Gast)


Lesenswert?

Karl Müller schrieb:
> Meine Sprachen sind neben (html, css und javascript) C, C#, C++, Java,
> MySql! Im Bereich Bascom hab ich wie gesagt, nichts zu tun!

HTML und CSS sind deiner Ansicht nach also (Programmer-)Sprachen?

Hm, das erklärt einiges.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sam Sung schrieb:
> Habe auch das gleiche Problem, bitte helft uns!!

Kein Wunder, schließlich sitzt du ja am gleichen Computer wie Karl.

von R. Lesch (Gast)


Lesenswert?

Karl Müller schrieb:
> Meine Sprachen sind neben (html, css und javascript) C, C#, C++, Java,
> MySql! Im Bereich Bascom hab ich wie gesagt, nichts zu tun!

Wieso plagst Du Dich dann mit Basic und Bascom! Wenn Du C kannst, dann 
verwende WinAVR oder das Atmel Studio.

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
Noch kein Account? Hier anmelden.