0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeFTDI EVE barvni TFT kontroler (3), praktične rutine

    FTDI EVE barvni TFT kontroler (3), praktične rutine

    Na koncu EVE članka iz preteklega meseca sem napisal nekaj osnovne kode, ki je potrebna za inicializacijo FT800 kontrolerja in da zaženemo enostaven zaslonski prikaz. Omenil sem tudi, da morate narediti neke vrste kalibracije zaslona, če želite uporabljati zaslon občutljiv na dotik.

    Slike niFTDI je to naredil kot zelo enostaven proces z definiranjem visokonivojskega ukaza za grafični soprocesor, ki opravi vse potrebno delo. V vaš program morate vnesti ukaz:

    Ft_Gpu_CoCmd_Calibrate(phost,0);

    Ta ukaz morate vnesti v rutini, ki zaganja krožni predpomnilnik grafičnega soprocesorja in nato zažene dejanski prenos med krožnim predpomnilnikom in FT800 soprocesorjem. Poglejmo si, kako je to narejeno v primeru programa, ki ga je napisal FTDI, glej program 1.

    Program 1

    Slike niVečino ukazov smo predstavili že v 2. delu, zato jih ne bom še enkrat razlagal. Kalibracijska rutina izriše 3 majhne utripajoče kroge enega za drugim, uporabnik pa mora na zaslonu pritisniti čim bližje centru kroga. Rutina pripravi v FT800 tudi avdio funkcije. V kolikor uporabljate FTDI VM800B43A razvojni modul, ki ima že vgrajen NF ojačevalnik, boste slišali pisk vsakič, ko se boste dotaknili zaslona.

    Kaj ta rutina naredi je to, da meri analogne vrednost, ki jih dobimo iz zaslona občutljivega na dotik iz treh vnaprej določenih koordinat na zaslonu. Z nekaj računanja generira šest 32-bitnih kalibracijskih konstant. Te konstante shrani v FT800 registre v naslednje lokacije, glej program 2.

    Te registri so del FT800 SRAM polja in se zbrišejo, v kolikor zmanjka napajalne napetosti. To bi seveda pomenilo, da bi morali napravo kalibrirati vsakič, ko jo vklopimo, kar bi bilo zelo nepraktično. Da bi se temu izognili, sem dodal kodo, takoj za kalibracijsko rutino, kar lahko vidite v Programu 1, glej program 3.

    Drugi in tretji stavek se ponovita 6x, enkrat za vsak REG_TOUCH_TRANSFORM_ A do F register. Potem sem kopiral 6 konstant, ki so bile prikazane v oknu Arduino serijskega monitorja. Potem sem vsakič, ko sem napisal nov program za FT800 kontroler, sem samo dodal sledeče rutine, s katerimi sem konstante zapisal v ustrezne FT800 registre, glej program 4.

    Program 2

    Ko sem napisal 1. in 2. del te serije člankov, sem delal s Connect EVE 4,3 “ ploščama podjetja Mikroelektronika. Pri obeh ploščah je zaslon lepo deloval s konstantami, ki sem jih zapisal v programu v 2. članku (in ga najdete na SE download strani).

    Ko sem pa pričel uporabljati VM800B43A 4,3” zaslon podjetja FTDI sem ugotovil, da je vseh šest konstant, ki jih dobimo iz kalibracijske rutine, popolnoma drugačnih. Tako drugačnih, da noben prej napisan program ni pravilno deloval, saj je imel konstante pridobljene iz Connect EVE plošče.

    Konstante, ki jih vidite v Programu 2 so pridobljene z uporabo VM800B43A podjetja FTDI, ki ga trenutno uporabljam. Naj omenim, da so kalibracijske konstante 32-bitne, kot je to definiral FTDI, s fiksno decimalko, ki se nahaja med 15. in 16. mestom. Ko berete te spremenljivke z uporabo naslednjega ukaza, lahko definirate spremenljivko calreg kot long ali unsigned long integer, glej program 5.

    Je popolnoma vseeno, katero metodo uporabite. V programu, ki sem ga napisal v 2. članku sem izbral unsigned long spremenljivko, zato se je vse skupaj končalo z nekaj velikimi številkami negativne vrednosti, kar vidimo v REG_TOUCH_TRANSFORM_C in E zgoraj.

    Zdaj ko sem spoznal, da so tako velike razlike med moduli Connect-EVE in VM800BC43A sem se odločil, da spremenim pristop pri kalibraciji:

    • Na začetku programa bom uporabniku dovolil možnost, da zažene kalibracijsko rutino (glej Program 1),
    • v kolikor je ta možnost izbrana bom prebral 6 kalibracijskih konstant, kot prikazano zgoraj in jih shranil v AVR-jev EEPROM,
    • če kalibracija NI izbrana, bom zagnal rutino, ki obnovi šest 32-bitnih konstant iz AVR-jevega EEPROM-a in jih shrani v REG_TOUCH_TRANSFORM_A do F registre na podoben način, kot prikazano v Programu 2.

    Pomembna korekcija

    Ko sem poizkušal FTDI-jeve programe omenjene v tem članku sem ugotovil nekonsistentnost v FTDI-jevi dokumentaciji/primerih uporabe. Če sledite FT800 vezavi signalov v Tabeli 1 (app. note AN_246), je CS# signal prikazan tako, da je povezan na Arduino Digital pin 10 (ATMega238 PB2-SS pin). Ko sem prvič vezal FT800 zaslon, sem uporabil to vezavo. Takrat sem ugotovil, da FTDI-jev program ni deloval. Razlog za to je bil v tem, da so vsi programi vsebovali FT_Platform.h datoteko, kjer so bile definicije, glej program 6.

    Program FT800

    Celotni članek

    FTDI EVE barvni TFT kontroler (3), praktične rutine

    2014_SE219_33

    Politika zasebnosti

    Spoštujemo vašo zasebnost in se zavezujemo, da bomo osebne podatke, pridobljene prek spletnega informacijskega sistema, skrbno varovali in jih brez vaše privolitve ne bomo posredoval tretji osebi oziroma jih uporabili v druge namene. Ker obstajajo v spletnem informacijskem sistemu določene povezave na druge, zunanje spletne strani, ki niso vezane na nas, ne prevzemamo nobene odgovornosti za zaščito podatkov na teh spletnih straneh.

    Hkrati se zavezujemo, da bomo po svojih najboljših možnih močeh varovali podatke in zasebnost obiskovalcev spletne strani .

    Da bi preprečili nepooblaščen dostop do pridobljenih podatkov ali njihovo razkritje, ohranili natančnost osebnih podatkov in zagotovili njihovo ustrezno uporabo, uporabljamo ustrezne tehnične in organizacijske postopke za zavarovanje podatkov, ki jih zbiramo.

    Več: https://svet-el.si/politika-zasebnosti