Hallo,
ich würde sagen, das mit dem enable geht zu schnell, Du musst dem LCD ein wenig Zeit geben damit es mitbekommt dass das enable high ist.
Evtl. würde ich die Daten zuerst auf die Leitung legen, dann erst das enable setzen, auch wenn normlerweise die Daten mit fallender Flanke übernommen werden sollen.
Und auch im 4-Bit Mode muss man alle 8 Bit rüberschieben, das Busy kommt erst danach, beim lcdWriteInitcmd() geht da was ab.
Wie lange wartest Du nach einem Reset bis das erste Byte gesendet wird, der Controller im LCD kann etwas länger brauchen als der AVR, so das die ersten Bytes ins Nirvana gehen. Wenn Du schon das BusyFlag überprüfst, kannst Du das auch schon vorher machen.
Lesezeichen