Met een Atmega16 stuur ik een 20*4 HD44780 compatible LCD aan.
Als functionset-commando wordt "0b00111000" ingesteld. Hiermee zou het display in 2-line mode moeten gaan. Helaas blijven regel 2 & 4 leeg als ik schrijf naar 0x40 en hoger.
Overigens blijven ze ook wit wanneer ik het contrast maximaal instel.

Het probleem zit hem niet in bedrading, wanneer ik op de wel werkende regels het karakter 0xFF schrijf wordt er netjes een zwart blokje getoond.

Iemand een idee wat het probleem kan zijn?

Ik heb hier die datasheet niet voor het grijpen, maar het lijkt er sterk op dat het ding bij de default settings (1 line) blijft. Op het eerste gezicht, lijkt die function set correct. Toch zal er ergens wat in je init niet lekker zitten...

Deze
http://www.voti.nl/docs/LCD-17-HC200401.pdf
en deze
http://www.eio.com/hd44780.pdf
horen erbij.

Tijdens de init wordt gewacht tot de busy-flag laag geworden is, voordat het programma vervolgd wordt.
Ik heb al geprobeerd om een vaste tijd te wachten (bijvoorbeeld 1 ms), maar dat geeft geen beter resultaat.

Het probleem is opgelost. De oplossing was het twee keer achterelkaar sturen van het Function-set command. :-)
Blijkbaar pikte hij het commando in één keer niet goed op.
Dank voor de hulp.

[Bericht gewijzigd door Mr. M op ]

mooiere oplossing is wat nops sturen word zie je vaak in voorbeelden ook terug. 2 of 3 nops volstaan meestal dan hoef je ook niet constant dubbele codes te sturen..

Op 16 maart 2007 09:11:31 schreef TheDuke:
mooiere oplossing is wat nops sturen word zie je vaak in voorbeelden ook terug. 2 of 3 nops volstaan meestal dan hoef je ook niet constant dubbele codes te sturen..

Helaas werkt dat niet :-(

Op 16 maart 2007 09:11:31 schreef TheDuke:
mooiere oplossing is wat nops sturen word zie je vaak in voorbeelden ook terug. 2 of 3 nops volstaan meestal dan hoef je ook niet constant dubbele codes te sturen..

Hangt waarschijnlijk ook wat van je kloksnelheid af. Heb je een rappe processor, zal het mogelijk nog wat te snel voor de LCD gaan. Met name bij de initialisatie komt dit wat preciezer.

Tijdens de initialisatie kun je de busy flag niet van begin af aan uitlezen. Kan meen ik pas na het 2e of 3e commando dat je verstuurd. Dus daar moet je gebruik maken van een wachtloepie.

Als dat je probleem is... de init staat met voorbeeld en al in de Hitatchi datasheet...