Dom > Vijesti > Sadržaj

Knjižnica emulatora FT8xx Uvod

Apr 26, 2019

2 Knjižnica emulatora FT8xx Uvod

2.1 Sučelje knjižnice emulatora FT8xx

Sučelje knjižnice FT8xx Emulator napisano je na C ++ i nalazi se u nazivu “FT800EMU ::”

samo prostor. Unutar prostora naziva “FT800EMU ::” postoje dva modula “SPII2C” i

Sučelje za "emulator". Ovdje je struktura:

image

Tablica 1 - FT8xx struktura sučelja knjižnice emulatora

2.1.1 FT800EMU :: SPII2C.begin ()

 Prototip

void begin ();

 Opis

Inicijalizirajte SPI / I2C modul emulatora

 Povratna vrijednost

nijedan

 Parametar

nijedan

2.1.2 FT800EMU :: SPII2C.end ()

 Prototip

void end ();

 Opis

De-inicijalizirajte SPI / I2C modul emulatora

 Povratna vrijednost

nijedan

 Parametar

nijedan


2.1.3 FT800EMU :: SPII2C.csLow ()

 Prototip

void csLow ();

 Opis

Nazovite ovaj API da biste pokrenuli jedan SPI / I2C prijenos. To je ekvivalentno povlačenju pin-a za odabir čipa

SPI / I2C sabirnice u FT8xx hardveru. Jer ja

2C bus, ova funkcija je ekvivalentna za pokretanje a

sa START.

 Povratna vrijednost

nijedan

 Parametar

nijedan


2.1.4 FT800EMU :: SPII2C.csHigh ()

 Prototip

void csHigh ();

 Opis

Nazovite ovaj API da biste prekinuli jedan prijenos SPI / I2C. Za SPI sabirnicu, to je jednako izboru čipova

pin visoko na SPI / I

2C sabirnica u FT8xx hardveru. Jer ja

2C sabirnica, ova je funkcija jednaka

završite poruku sa STOP.

 Povratna vrijednost

nijedan

 Parametar

nijedan


2.1.5 FT800EMU :: SPII2C.transfer ()

 Prototip

uint8_t prijenos (uint8_t podaci);

 Opis

Pozivanje ovog API-ja je prijenos jednog bajta iz / u emulator.

Podaci koji se šalju su navedeni kao parametar, dok se podaci koji se primaju daju kao

povratna vrijednost.

 Povratna vrijednost

Jedan bajt podataka primljenih od FT8xx emulatora ako se čita prijenos.

 Parametar

Jedan bajt podataka poslan na FT8xx emulator. U slučaju SPI čitanja prijenosa, ovaj bajt može biti

bilo što.


2.1.6 FT800EMU :: Emulator.run ()

 Prototip

void run (const EmulatorParameters & params);

 Opis

Pozivanje ove funkcije pokreće emulator odmah i kontrola aplikacije je

emulator. Ponašanje emulatora konfigurirano je putem

parametre koji su proslijeđeni. Kôd aplikacije bit će pozvan kroz dva

povratne funkcije u strukturi parametara. Ovaj se API nikada neće vratiti, osim emulatora

je ubijen ili postoji postupak prijave.

 Povratna vrijednost

nijedan

 Parametri

Provjerite sljedeći kôd za pojedinosti o definiranju parametara.


1) Definicija strukture parametara

typedef struct

{

// Funkcija mikrokontrolera koja se zove prije petlje.

void (* postavljanje) ();

// Mikrokontroler kontinuirana petlja.

void (* Loop) ();

// Vidi EmulatorFlags.

int Zastavice;

// Emulator

FT8XXEMU_EmulatorMode način rada;

// Poziva se nakon ažuriranja tipkovnice.

// Isporučena funkcija može koristiti Keyboard.isKeyDown (FT8XXEMU_KEY_F3)

// ili FT8XXEMU_isKeyDown (FT8XXEMU_KEY_F3) funkcije.

void (* tipkovnica) ();

// Zadani pritisak miša, zadana vrijednost 0 (maksimalno).

// Pogledajte REG_TOUCH_RZTRESH, itd.

uint32_t MousePressure;

// Vanjska frekvencija. Pogledajte CLK, itd.

uint32_t ExternalFrequency;

// Smanjivanje niti grafičkog procesora prema zadanom broju, defaultu 0

// Neophodan je kada radite vrlo težak posao na MCU ili koprocesoru

uint32_t ReduceGraphicsThreads;

// Funkcija mirovanja za uporabu navoja MCU navoja. Zadane postavke na generički sustav

spavati

void (* MCUSleep) (int ms);

// Zamjenjuje zadani ugrađeni ROM s prilagođenim ROM-om iz datoteke.

// NAPOMENA: String se kopira i može se ukloniti nakon poziva za pokretanje (...)

char * RomFilePath;

// Zamjenjuje zadani ugrađeni OTP s prilagođenim OTP-om iz datoteke.

// NAPOMENA: String se kopira i može se ukloniti nakon poziva za pokretanje (...)

char * OtpFilePath;

// Zamjenjuje ugrađeni ROM koprocesora.

// NAPOMENA: String se kopira i može se ukloniti nakon poziva za pokretanje (...)

char * CoprocessorRomFilePath;

// Grafički pogon bez upravljačkog programa

// Postavljanje ovog povratnog poziva znači da nema prozora i sve

// prikazana grafika automatski će biti poslana ovoj funkciji.

// Za omogućavanje funkcije dodira, funkcije

/ / Memory.setTouchScreenXY i Memory.resetTouchScreenXY moraju biti

// ručno se poziva iz host aplikacije.

// Ugrađena funkcionalnost tipkovnice nije podržana i mora biti

// implementira se ručno prilikom korištenja ovog načina rada.

// Izlazni parametar je false (0) kada je zaslon isključen.

/ / Sadržaj pokazivača međuspremnika je nedefiniran nakon toga

// funkcija se vraća.

// Vraća lažno (0) kada aplikacija mora izaći, inače vrati true (1).

int (* Graphics) (int izlaz, const argb8888 * međuspremnik, uint32_t hsize, uint32_t

vsize, zastave FT8XXEMU_FrameFlags);

// Voditelj prekida

// void (* Interrupt) ();

// Izuzetak povratni poziv

void (* Izuzetak) (const char * poruka);

// Siguran izlaz

void (* Close) ();

} FT8XXEMU_EmulatorParametri;

Slika 1 - Definicija strukture "EmulatorParameters"


2) Oznake za konfiguriranje emulatora

U nastavku naveden broj kodova nabrajanja određuje se značajka emulatora s kojom se pokreće. Do

omogućiti određene značajke, možete "OR" ove nabrajati i dodijeliti vrijednosti rezultata

Polje “Flags” u strukturi parametara “EmulatorParameters” gore.

typedef enum

{

// omogućuje da se tipkovnica koristi kao ulaz (zadano: uključeno)

FT8XXEMU_EmulatorEnableKeyboard = 0x01,

// omogućuje audio (zadano: uključeno)

FT8XXEMU_EmulatorEnableAudio = 0x02,

// omogućuje koprocesor (zadano: uključeno)

FT8XXEMU_EmulatorEnableCoprocessor = 0x04,

// omogućuje miša kao dodir (zadano: uključeno)

FT8XXEMU_EmulatorEnableMouse = 0x08,

// omogućavanje debug kratkih poruka (zadano: uključeno)

FT8XXEMU_EmulatorEnableDebugShortkeys = 0x10,

// omogući multiregranost grafičkog procesora (zadano: uključeno)

FT8XXEMU_EmulatorEnableGraphicsMultithread = 0x20,

// omogućiti degradiranje dinamičke grafičke kvalitete prepletanjem i ispuštanjem okvira

(zadano: uključeno)

FT8XXEMU_EmulatorEnableDynamicDegrade = 0x40,

// omogućiti emuliranje REG_PWM_DUTY tako da blijedi prikazani prikaz u crno

(zadano: isključeno)

FT8XXEMU_EmulatorEnableRegPwmDutyEmulation = 0x100,

// omogućuju upotrebu matrice transformacije dodira (zadano: uključeno)

FT8XXEMU_EmulatorEnableTouchTransformation = 0x200,

} FT8XXEMU_EmulatorFlags;

Slika 2 - Definicija polja zastavica


3) Tipična postavka

Za optimalne performanse preporučuju se dolje navedene postavke.

Povratne funkcije "setup ()" i "loop ()" definirat će korisnički projekt i bit će

koje emulator zove. Funkcija "setup ()" pretpostavlja se da će je jednom pokrenuti emulator za inicijalizaciju

svrhe. Funkciju "loop ()" emulator će povremeno pozivati. Ove dvije funkcije osiguravaju

korisnički projekt je u kontekstu emulatora. Neuspjeh dodjeljivanja "setup ()" i "loop ()"

na emulator neće rezultirati unosom emulatora.

Obično, funkcija "setup ()" i "loop ()" u projektu korisnika definira glavnu logiku i zaslon

popis će biti poslan emulatoru putem SPI / I2C sučelja.

#include "FT_Platform.h"

#ifdef MSVC_FT800EMU

#include

FT8XXEMU_EmulatorMode Ft_GpuEmu_Mode ();

extern "C" void setup ();

vanjska "C" void loop ();

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

{

Parametri FT8XXEMU_EmulatorParametri;

FT8XXEMU_defaults (FT8XXEMU_VERSION_API i parametri, Ft_GpuEmu_Mode ());

params.Flags & = (~ FT8XXEMU_EmulatorEnableDynamicDegrade &

-FT8XXEMU_EmulatorEnableRegPwmDutyEmulation);

params.Setup = postavljanje;

params.Loop = petlja;

// params.Graphics = grafika;

FT8XXEMU_run (FT8XXEMU_VERSION_API i param);

return 0;

}

Slika 3 - Pokrenite FT8xx emulator