Pokud Ti šlape I2C komunikace, tak si projdi časování toho LCD. Po zapnutí musíš počkat nejakou dobu, než začneš do LCD posílat data. Najdi si to v datasheetu. Pokud to tam není, tak počkej cca 0,5 sek., než začneš s LCD komunikovat. Každý zápis do LCD také potřebuje určitý čas na zpracování.
Omlouvám se, přehlédl jsem, že to má být pro Netduino Plus 2(což je ARM procesor, myslel jsem že je to podobné na arduino, které bývá osazeno ATmegaxxxx).
Jinak ty soubory *.c a *.h se dají otevřít v programu Poznámkový blok.
Hledal jsem specifikaci Netduino Plus 2 a zatím jsem našel dvě verze, jedna s STM32F405RG a druhý s AT91SAM7X512. Pro jakou verzi to potřebuješ?
Abych vyvráítl možnost že zbylé dva co mám jsou vadné.
Nicméně jsem nerozhodil ani tento.
Mám návrh, snad neporušuji pravidla tohoto fóra.
Rád bych požádal někoho kdo mi celou záležitost pomůže vyřešit,
a to za finanční odměnu. LCD semi hodně líbí.
Cílem by bylo použít co nejméně drátu z netduina a mít k jendoduchou knihovnu (driver), který bude modifikovatelný pro různé velikosti LCD (2*16,4x20…)
I2C není podmínkou, může to jet přes 74HC595B / 74HC595D
Pokud někdo nemá účet, mohu peníze poslat složenkou nebo jako kredit na mobil. stačí se jen domluvit na výši, řekni si za kolik.
Přijde mi to fér, když už mi s tím bude někdo pomáhat aby z toho něco měl.
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.