Zkus to postupně. V prvním kroku si připoje LCD 8-bitově a zkus rozběhnout komunikaci po 8 bitech. Jakmile Ti to bude šlapat, tak už potom modifikace způsobu, jak dostat data do displeje jsou jednoduché. Tyhle LCD jsou jednoduché a dobře se s nima pracuje. Knihovnu pro něj jsem napsal podle datasheetu cca za 1 odpoledne. Modifikace způsobů přenosu trvaly déle, ale hlavně kvůli tomu, že jsem to chěl mít napsané tak, že v .inc (něco jako .h) souboru mám výběr způsobu komunikace a portů. Knihovna vlastní má pak podmíněné překlady právě pro přenos dat do LCD a inicializační sekvence. Ale abych se vrátil k LCD. Je třeba dodržet následující :
- Po zapnutí napájení musíš počkat, než začneš s LCD komunikovat. LCD potřebuje pro svou inicializaci nějaký čas. Většinou dávám 0,5 sek. Během inicializace LCD nelze použít BF displeje.
- Po zápisu dat nebo instrukce do LCD musíš buď zkontrolovat BF před zápisem nebo prostě po zápisu nějakou dobu počkat. Pro smazání LCD (instrukce 0x01) a cursor home (instrukce 0x02) dávám 2 ms, pro ostatní dávám 50us. Mělo by to stačit.
- Délka impulzu E by měla být alespoň 400ns. Když bude 1us (1000ns), nic tím nezkazíš. Taky už jsem koumal u jednoho LCD, proč mi nechodí a pak jsem zjistil, že E v délce 500ns mu nestačil.