www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD 202A in Bascom - intialisiert nicht richtig


Autor: Lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe hier ein LCD mit 20 x 2 Zeichen von reichelt

http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A5211...

an einen Atmel AVR ATMEGA16 angeschlossen. Das ganze soll im 4-Bit Modus 
laufen.
Das Programm habe ich in Bascom geschrieben und sieht wie folgt aus:
$regfile = "m16def.dat"
$crystal = 8000000

Waitms 500                                                  'zeit zum Initialisieren

Config Portc = Output

Portc.5 = 0                                                 'RW auf Low
Portc.7 = 0                                                 'Hintergrundbeleuchtung aus

Config Lcdbus = 4
Config Lcd = 20 * 2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.6 , Rs = Portc.4


Cls                                                         'Text ausgeben
Lcd "!1AQaq"

Do
Loop
End


Nach dem flashen des µC sollte nun auf dem Display "!1AQaq" angezeigt 
werden. Er zeigt aber "/ ? " am rechten Rand des LCDs an.

Wenn man in die Zeichentabelle des LCDs schaut, dann sieht es so aus, 
als wenn das LCD gar nicht im 4-Bit Modus arbeitet und die "lower 4 bit" 
(die nicht angeschlossen sind) immer als "1111" erkennt.

Hat jemand eine Idee, warum das LCD nicht korrekt arbeitet?

Vielen Dank im vorraus!!

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es kann (wird) sein, daß das JTAG Interface aktiviert ist.
(Auslieferungszustand)

Du kannst es aber abschalten, in dem Du im IO_Register MCUCSR das Bit 7
(JTD) auf 1 setzt. Das Ganze muß aber 2 mal nacheinander erfolgen, damit
es Wirkung erzielt. Schau mal in's Datenblatt auf die Seite 229, da 
steht
es erklärt.

MCUCSR.7 = 1
und das Gleiche nocheinmal...



MfG Paul

Autor: Lui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


ich habe den µC mit AVR-Studio geflasht und habe dort in den Fuses das 
Häkchen bei "JTAG Enabled" rausgenommen. (und dann natürlich auf 
"programm" gedrückt) verify war auch erfolgreich. Zusätzlich habe ich 
zwei mal
MCUCSR.7 = 1

in Bascom Programm reingeschrieben. Das bringt aber auch nichts.

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lui,

schreibe mal einen anderen Text wie "1234567900" in das Display um zu 
prüfen, ob evtl eine Datenleitung unterbrochen ist.

Gruss Otto

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab' grad gemerkt, dass ich nicht eingeloggt war. Also Lui(Gast) und 
Lukas(lukas) sind eine Person ;-)

ich habe jetzt mal "1234567890aaaaaaaaaa" in das LCD geschrieben. jetzt 
zeigt er wieder nur auf den letzten 4stellen der ersten Zeile etwas an.
Die genauen Zeichen sind: "? ?/"
Das sind wieder nur Zeichen aus der untersten Reihe der Zeichentabelle 
des LCDs.

Vielen Dank für eure Hilfe!

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kontrolliere die Datenleitungen auf Kurzschluss (auch unterenander) oder 
Unterbrechung.

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das habe ich mit nem Durchgangsprüfer zwar schon gemacht, aber ich geh 
nochmal mit nem "Ohmmeter" ran, vielleicht ist ja irgendwo eine 
hochohmige verbindung.

Autor: Herby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lucas,

das ganze ist hier zu finden:

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

Schreibe richtig:

Config Lcdpin  Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = 
Portc.3 , E = Portc.6 , Rs = Portc.4

Dein Eintrag = PIN bringt das problem!

Gruß

Herbert

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das geht auch nicht, dann gibt Bascom mir die Fehlermeldung:

Error 12, Unknown Config Parameter zurück.

Autor: Herby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lucas,

Habe gerade Blösinn geschrieben!

Hier ein Auszug aus meinem Bascom Programm:

Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , 
Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Config Lcd = 16 * 2                               ', Chipset = Ks077 
'configure lcd screen
Config Lcdbus = 4

Das funktioniert aber nur mit Port C wenn die JTAG Fuse nicht gesetzt 
ist!
Habe auch schonmal fast einen Tag mit der Fehlersuche verbracht, bis mir 
die Fuse eingafallen ist. Ist im neuem Chip gesetzt!

So jetzt viel Spaß

Herbert

Autor: Stefan S. (digitali)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also mit folgendem Beispiellisting habe ich schon auf hunderte von 
HD44780 LCD's erfolgreich ein "Hello World" draufgezaubert:

-------------------
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , 
Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2

Config Lcd = 16 * 4

Initlcd
Cursor Off
Cls

Locate 1,1
LCD" Hello World!"
-------------------

Nichts mehr und auch nichts weniger.
Steht auch alles so in der Bascom-Hilfe drin. Und wenn das nicht 
funktioniert ist JTAG aktiv, oder halt falsch verkabelt.

Mit freundlichen Gruessen
Digitali

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow, den "Initlcd"-Befehl kannte ich noch gar nicht. Bei allen anderen 
LCDs ging das bisher immer ohne. Aber jetzt geht es:
$regfile = "m16def.dat"
$crystal = 8000000


Waitms 500                                                  'zeit zum Initialisieren
Config Portc = Output

Portc.5 = 0                                                 'RW auf Low
Portc.7 = 0                                                 'Hintergrundbeleuchtung aus



Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.6 , Rs = Portc.4
Config Lcd = 20 * 2


Initlcd
Cls

Locate 1 , 1
Lcd "1234567890aaaaaaaaaa"                                 'Text ausgeben

Do
Loop
End


Vielen Dank an alle!!

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.