Hallo, ik heb zo'n HD44780 - compatible LCD scherm gekocht op dick best,
en een printje gemaakt om dit aan te sturen met een ATMEGA8.
Alle connecties zijn juist gemaakt (heb dit gecheckt door afzonderlijk alle poorten '1' te maken.
Wat mijn LCD doet is op de eerste regel allemaal ############# tonen (volledige blokjes).
Geen tekst. Kan dit liggen aan het feit dat ik een POT meter van 100k gebruikt heb voor het contrast?
Hoe ik hem ook regel, de blokjes blijven, maar worden welleenswaar minder zwart.
Of zou ik m'n lcd kappot hebben gemaakt?

Dit is m'n code:


$crystal = 8000000
$regfile = M8.dat


Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.3 , Db6 = Portd.2 , Db7 = Portd.1 , E = Portc.5 , Rs = Portc.4
Config Lcdmode = Port

Cls
Lcd "Joooooo"

[Bericht gewijzigd door Scheef_schaap op (17%)]

die blokjes betekenden dacht ik dat de initialisatie nog niet helemaal doorlopen is. de LCD doet het wel.
Als de blokjes 'leesbaar' zijn (zichtbaar contrast ten opzichte van 2e regel) moet je je code verbeteren.

ondertussen heb je je code geplaastst.
welke taal is dit?
Waar zijn zijn Databit 0 t/m 4? in 4 bits mode heb je die toch nodig?
Config Lcdpin = Pin // klopt dit? moet dit geen naam zijn?
Config Lcdmode = Port

[Bericht gewijzigd door Progger op (34%)]

Ik zou je databus 'ontspiegelen', dus lage data aan lage data, en ik zou alles binnen een poort houden, dus geen controlesignalen op poort c, als de data op b geleverd wordt. Volgens mij moet de lcd altijd uit een poort zijn data geleverd krijgen.

<edit> in bascom dan.Kan geen bewijs vinden dat het uit 1 poort moet komen,maar bij mij werkte het nooit, als ik 2 poorten (c en d in dit geval) gebruikte.

[Bericht gewijzigd door richardvelsen op (25%)]

Oké, het moet dus uit 1 poort komen :/ hartelijk dank! wordt wel moeilijk om dit nog te veranderen, maar ik zal het eens proberen.

Citaat uit de Bascom handleiding, bij het Config LCDmode commando:

PORT

Will drive the LCD in 4-bit port mode and is the default.

In PORT mode you can choose different PIN's from different PORT's to connect to the upper 4 data lines of the LCD display. The RS and E can also be connected to a user selectable pin. This is very flexible since you can use pins that are not used by your design and makes the board layout simple. On the other hand, more software is necessary to drive the pins.

Het maakt dus niet uit van welke poort elke pin komt.

Is wat je gepost hebt de enige code die je in je programma hebt staan?
Probeer het eens aan te passen naar het volgende:

[code=Bascom]
$crystal = 8000000
$regfile = "M8.dat"

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.3 , Db6 = Portd.2 , Db7 = Portd.1 , E = Portc.5 , Rs = Portc.4
Config Lcdmode = Port

Cls
Lcd "Joooooo"
do

loop
end
[/code]

Op 13 juni 2010 14:58:44 schreef Scheef_schaap:
Oké, het moet dus uit 1 poort komen :/ hartelijk dank! wordt wel moeilijk om dit nog te veranderen, maar ik zal het eens proberen.

Heb je trouwens pin 5 (r/w) van de lcd aan ground?
heb ik ook nog weleens vergeten.

(ben het met styn eens,trouwens. Maarkan me herinneren, dat ik eens een probleem zo wegkreeg...) De 'do..loop' is ook ok. misschien binnen de loop wat data naar de lcd schrijven. handig voor het debuggen.

[Bericht gewijzigd door richardvelsen op (24%)]

Oeps, die had ik aan VCC gehangen :/
THx!

Het kan ook zijn dat je LCD nog wat tijd nodig heeft om alles te initialiseren. Dus misschien een delaytje van 500mSec. voordat je begint met het display te clearen kan ook helpen. Geen idee hoe je dat in jouw taal kan, dus dat mag je zelf doen ;).

Ik heb gemerkt dat die KS-huppeldepup LCD's soms gewoon niet willen werken met Bascom. Ik heb eens ooit een routine geschreven om de initialisatie handmatig te doen, en daarna een config lcd (anders kun je de handige bascom functies niet gebruiken).