info@panadisplay.com
Knjižnica emulatorja FT8xx Uvod

Knjižnica emulatorja FT8xx Uvod

Apr 26, 2019

2 Knjižnica emulatorja FT8xx Uvod

2.1 Vmesnik knjižnice emulatorja FT8xx

Vmesnik knjižnice FT8xx Emulator je napisan v jeziku C ++ in se nahaja v imenu »FT800EMU ::«

samo prostor. V imenskem prostoru FT800EMU :: sta dva modula SPII2C in

Vmesnik »Emulator«. Tukaj je struktura:

image

Tabela 1 - Struktura vmesnika knjižnice emulatorja FT8xx

2.1.1 FT800EMU :: SPII2C.begin ()

 Prototip

void begin ();

 Opis

Inicializirajte modul SPI / I2C emulatorja

 Vrnjena vrednost

Jih ni

 Parameter

Jih ni

2.1.2 FT800EMU :: SPII2C.end ()

 Prototip

void end ();

 Opis

De-inicializirajte modul SPI / I2C emulatorja

 Vrnjena vrednost

Jih ni

 Parameter

Jih ni


2.1.3 FT800EMU :: SPII2C.csLow ()

 Prototip

void csLow ();

 Opis

Pokličite ta API, da zaženete prenos SPI / I2C. To je enakovredno vlečenju čipa za izbiro čipa

SPI / I2C vodila v strojni opremi FT8xx. Za jaz

2C bus, ta funkcija je enakovredna zagonu a

sporočilo s START.

 Vrnjena vrednost

Jih ni

 Parameter

Jih ni


2.1.4 FT800EMU :: SPII2C.csHigh ()

 Prototip

void csHigh ();

 Opis

Pokličite ta API, da končate en prenos SPI / I2C. Za vodilo SPI je enako izbranemu vlečnemu čipu

pin visoko na SPI / I

2C vodilo v strojni opremi FT8xx. Za jaz

2C bus, ta funkcija je enakovredna

končate sporočilo s STOP.

 Vrnjena vrednost

Jih ni

 Parameter

Jih ni


2.1.5 FT800EMU :: SPII2C.transfer ()

 Prototip

prenos uint8_t (podatki uint8_t);

 Opis

Klicanje tega API-ja je prenos enega bajta iz / v emulator.

Podatki, ki jih je treba poslati, so določeni kot parameter, medtem ko so podatki, ki jih želite prejeti, podani kot

vrne vrednost.

 Vrnjena vrednost

En bajt podatkov, ki jih prejmete iz emulatorja FT8xx, če se bere prenos.

 Parameter

En bajt podatkov, poslanih na emulator FT8xx. V primeru prenosa SPI branja je lahko ta bajt

karkoli.


2.1.6 FT800EMU :: Emulator.run ()

 Prototip

void run (const EmulatorParameters & params);

 Opis

Klicanje te funkcije bo takoj zagnalo emulator in nadzor aplikacije

prenesti na emulator. Obnašanje emulatorja je konfigurirano prek

parametre, ki so bili posredovani. Koda aplikacije se bo klicala prek dveh

funkcije povratnega klica v strukturi parametrov. Ta API se nikoli ne bo vrnil, razen emulatorja

je ubit ali obstaja postopek prijave.

 Vrnjena vrednost

Jih ni

 Parametri

Za podrobnosti o definiciji parametrov preverite naslednjo kodo.


1) Opredelitev strukture parametrov

typedef struct

{

// Funkcija mikrokontrolerja, imenovana pred zanko.

void (* Setup) ();

// Mikrokontroler zvezna zanka.

void (* Loop) ();

// Glejte EmulatorFlags.

Int zastavice;

// Emulator

FT8XXEMU_EmulatorMode način;

// Pokliče po posodobitvi tipkovnice.

// Priložena funkcija lahko uporablja Keyboard.isKeyDown (FT8XXEMU_KEY_F3)

// ali FT8XXEMU_isKeyDown (FT8XXEMU_KEY_F3) deluje.

void (* tipkovnica) ();

// Privzeti pritisk miške, privzeta vrednost 0 (največja).

// Glejte REG_TOUCH_RZTRESH itd.

uint32_t MousePressure;

// Zunanja frekvenca. Glejte CLK itd.

uint32_t ExternalFrequency;

// Zmanjšanje niti grafičnega procesorja s podano številko, privzeto 0

// Potrebno pri zelo težkem delu na MCU ali koprocesorju

uint32_t ReduceGraphicsThreads;

// Funkcija mirovanja za uporabo navora za uporabo MCU navojev. Privzeto velja za generični sistem

spanja

void (* MCUSleep) (int ms);

// Zamenja privzeti vgrajeni ROM s prilagojenim ROM-om iz datoteke.

// OPOMBA: String se kopira in se lahko prekliče po klicu (...)

char * RomFilePath;

// Zamenja privzeto vgrajeno OTP z OTP po meri iz datoteke.

// OPOMBA: String se kopira in se lahko prekliče po klicu (...)

char * OtpFilePath;

// Zamenja vgrajen ROM koprocesorja.

// OPOMBA: String se kopira in se lahko prekliče po klicu (...)

char * CoprocessorRomFilePath;

// Grafični način brez gonilnika

// Nastavitev tega povratnega klica pomeni, da ne bo ustvarjeno nobeno okno in vse

// upodobljene grafike bodo samodejno poslane tej funkciji.

// Za omogočanje delovanja na dotik, funkcije

// Memory.setTouchScreenXY in Memory.resetTouchScreenXY morata biti

// se imenuje ročno iz aplikacije gostitelja.

// Vgrajena funkcionalnost tipkovnice ni podprta in mora biti

// ročno pri uporabi tega načina.

// Ko je zaslon izklopljen, je izhodni parameter napačen (0).

// Vsebina kazalca medpomnilnika po tem ni definirana

// funkcija vrne.

/ / Vrne false (0), ko mora aplikacija zapreti, sicer vrne true (1).

int (* Graphics) (int izhod, const argb8888 * buffer, uint32_t hsize, uint32_t

vsize, FT8XXEMU_FrameFlags zastave);

// Udeleženec prekine

// void (* Interrupt) ();

// Izjemni povratni klic

void (* Izjema) (const char * sporočilo);

// Varni izhod

void (* Zapri) ();

} FT8XXEMU_EmulatorParameters;

Slika 1 - Opredelitev strukture »EmulatorParameters«


2) Zastave za konfiguriranje emulatorja

Vzorec enumeracijske kode, ki je prikazan spodaj, določa funkcijo emulatorja, s katero se izvaja. Za

Omogočite posebne funkcije, lahko pa "OR" naštete in dodeli vrednosti rezultata

Polje »Zastave« v strukturi parametrov »EmulatorParameters« zgoraj.

typedef enum

{

// omogoča uporabo tipkovnice kot vnosa (privzeto: vklopljeno)

FT8XXEMU_EmulatorEnableKeyboard = 0x01,

// omogoči zvok (privzeto: vključeno)

FT8XXEMU_EmulatorEnableAudio = 0x02,

// omogoča koprocesor (privzeto: vključeno)

FT8XXEMU_EmulatorEnableCoprocessor = 0x04,

// omogoči miško kot dotik (privzeto: vključeno)

FT8XXEMU_EmulatorEnableMouse = 0x08,

// omogoči debug shortkeys (privzeto: vklopljeno)

FT8XXEMU_EmulatorEnableDebugShortkeys = 0x10,

// omogoči večnitnost grafičnega procesorja (privzeto: vklopljeno)

FT8XXEMU_EmulatorEnableGraphicsMultithread = 0x20,

// omogočajo degradiranje dinamične kakovosti grafike s prepletanjem in spuščanjem okvirjev

(privzeto: vključeno)

FT8XXEMU_EmulatorEnableDynamicDegrade = 0x40,

// omogoči emuliranje REG_PWM_DUTY s tem, da upodobljeni prikaz postane bled

(privzeto: izklopljeno)

FT8XXEMU_EmulatorEnableRegPwmDutyEmulation = 0x100,

// omogoči uporabo matrike transformacije na dotik (privzeto: vklopljeno)

FT8XXEMU_EmulatorEnableTouchTransformation = 0x200,

} FT8XXEMU_EmulatorFlags;

Slika 2 - Opredelitev polja zastavic


3) Tipična nastavitev

Za optimalno delovanje priporočamo spodnje nastavitve.

Funkcije povratnega klica "setup ()" in "loop ()" bodo definirane s strani uporabniškega projekta in bodo

kliče emulator. Predpostavlja se, da emulator za inicializacijo enkrat zažene funkcijo “setup ()”

namene. Funkcijo »loop ()« bo emulator redno klical. Ti dve funkciji zagotavljata

uporabniški projekt je v kontekstu emulatorja. Neuspeh dodelitve »setup ()« in »zanke ()«

na emulator ne bo imel vnosa v emulator.

Običajno funkcija “setup ()” in “loop ()” v projektu uporabnikov opredeljuje glavno logiko in zaslon

seznam bo poslan v emulator preko vmesnika SPI / I2C.

#include "FT_Platform.h"

#ifdef MSVC_FT800EMU

#include

FT8XXEMU_EmulatorMode Ft_GpuEmu_Mode ();

extern "C" void setup ();

zunanja "C" void loop ();

ft_int32_t glavni (ft_int32_t argc, ft_char8_t * argv [])

{

FT8XXEMU_EmulatorParametri parametrov;

FT8XXEMU_defaults (FT8XXEMU_VERSION_API, & parametri, Ft_GpuEmu_Mode ());

params.Flags & = (~ FT8XXEMU_EmulatorEnableDynamicDegrade &

~ FT8XXEMU_EmulatorEnableRegPwmDutyEmulation);

params.Setup = setup;

params.Loop = zanka;

// params.Graphics = grafika;

FT8XXEMU_run (FT8XXEMU_VERSION_API, & parametri);

return 0;

}

Slika 3 - Zagon emulatorja FT8xx