Id-dar > Aħbarijiet > Il-kontenut

FT8xx Emulator Librerija Introduzzjoni

Apr 26, 2019

2 FT8xx Emulator Librerija Introduzzjoni

2.1 Interfejt tal-Librerija tal-Emulator tal-FT8xx

L-interfaċċja tal-librerija tal-Emulator FT8xx hija miktuba f’C ++ u tinsab fl-isem “FT800EMU ::”

spazju biss. Fl-ispazju ta ’l-isem“ FT800EMU :: ”, hemm żewġ moduli“ SPII2C ”u

“Emulator” li jesponi l-interface. Hawn hi l-istruttura:

image

Tabella 1 - FT8xx Struttura tal-interface tal-librerija tal-emulator

2.1.1 FT800EMU :: SPII2C.begin ()

 Prototip

null begin ();

 Deskrizzjoni

Inizjalizza l-modulu SPI / I2C tal-Emulator

 Valur tar-ritorn

Xejn

 Parametru

Xejn

2.1.2 FT800EMU :: SPII2C.end ()

 Prototip

vojt tmiem ();

 Deskrizzjoni

De-Initialize il-modulu SPI / I2C ta ’l-Emulator

 Valur tar-ritorn

Xejn

 Parametru

Xejn


2.1.3 FT800EMU :: SPII2C.csLow ()

 Prototip

void csLow ();

 Deskrizzjoni

Ċempel lil dan l-API biex tibda trasferiment SPI / I2C wieħed. Huwa ekwivalenti għall-ġbid ta 'ċipp tal-għażla tal-pin fuq

il-bus SPI / I2C fil-hardware FT8xx. Għal I

2C bus, din il-funzjoni hija ekwivalenti għal start a

messaġġ b’START.

 Valur tar-ritorn

Xejn

 Parametru

Xejn


2.1.4 FT800EMU :: SPII2C.csHigh ()

 Prototip

void csHigh ();

 Deskrizzjoni

Ċempel lil dan l-API biex ittemm trasferiment SPI / I2C wieħed. Għall-bus SPI, huwa ekwivalenti għall-ġbid taċ-ċippa

pin għoli fuq l-SPI / I

Xarabank 2C fil-ħardwer tal-FT8xx. Għal I

2C bus, din il-funzjoni hija ekwivalenti għal

ittemm messaġġ b’STOP.

 Valur tar-ritorn

Xejn

 Parametru

Xejn


2.1.5 FT800EMU :: SPII2C.transfer ()

 Prototip

trasferiment uint8_t (dejta uint8_t);

 Deskrizzjoni

Is-sejħa ta 'dan l-API għandha titrasferixxi byte wieħed minn / għal emulatur.

Id-dejta li għandha tintbagħat hija speċifikata bħala parametru, filwaqt li d-dejta li għandha tiġi riċevuta tingħata bħala a

valur tar-ritorn.

 Valur tar-ritorn

Byte wieħed ta 'dejta riċevuta mill-emulatur FT8xx jekk jinqara' trasferiment.

 Parametru

Byte wieħed ta 'dejta mibgħut lill-emulatur FT8xx. F'każ ta 'trasferiment ta' SPI moqri, dan il-byte jista 'jkun

xejn.


2.1.6 FT800EMU :: Emulator.run ()

 Prototip

void run (const EmulatorParameters & params);

 Deskrizzjoni

Meta ssejjaħ din il-funzjoni, l-emulator jibda immedjatament u l-kontroll tal-applikazzjoni hu

trasferiti għall-emulator. L-imġiba ta ’l-emulatur hija kkonfigurata permezz ta’

parametri li ġew mgħoddija. Il-kodiċi ta ’l-applikazzjoni se jissejjaħ permezz ta’ tnejn

funzjonijiet callback fl-istruttura tal-parametri. Dan l-API qatt m'għandu jirritorna, sakemm emulator

jinqatel jew il-proċess ta ’applikazzjoni jeżisti.

 Valur tar-ritorn

Xejn

 Parametri

Jekk jogħġbok iċċekkja l-kodiċi li ġej għal dettalji dwar definizzjoni ta 'parametru.


1) Definizzjoni ta 'struttura ta' parametru

typedef struct

{

// Il-funzjoni tal-mikrokontrollur imsejħa qabel il-linja.

null (* Setup) ();

// loop kontinwu tal-mikrokontrollur.

null (* Loop) ();

// Ara EmulatorFlags.

bnadar int;

// Mod ta 'emulatur

Modalità FT8XXEMU_EmulatorMode;

// Imsejħa wara aġġornament tat-tastiera.

// Il-funzjoni fornuta tista 'tuża Keyboard.isKeyDown (FT8XXEMU_KEY_F3)

// jew funzjonijiet FT8XXEMU_isKeyDown (FT8XXEMU_KEY_F3).

vojt (* tastiera) ();

// Il-pressjoni default tal-maws, default 0 (massimu)

// Ara REG_TOUCH_RZTRESH, eċċ.

uint32_t MousePressjoni;

// Frekwenza esterna. Ara CLK, eċċ.

uint32_t ExternalFrequency;

// Naqqas il-ħjut tal-proċessur tal-grafika bin-numru speċifikat, default 0

// Meħtieġa meta tagħmel xogħol tqil ħafna fuq l-MCU jew Coprocessor

uint32_t NaqqasGrafikaTreads;

// Funzjoni ta 'rqad għal throttle ta' użu tal-ħajt MCU. Defaults għal sistema ġenerika

irqad

null (* MCUSleep) (int ms);

// Jissostitwixxi r-ROM mibnija default b 'ROM tad-dwana minn fajl.

// NOTA: String hija kkupjata u tista 'tiġi deallokata wara sejħa biex tmexxi (...)

char * RomFilePath;

// Jissostitwixxi l-OTP mibni default b’OTP tad-dwana minn fajl.

// NOTA: String hija kkupjata u tista 'tiġi deallokata wara sejħa biex tmexxi (...)

char * OtpFilePath;

// Jissostitwixxi r-ROM tal-koproċessur builtin.

// NOTA: String hija kkupjata u tista 'tiġi deallokata wara sejħa biex tmexxi (...)

char * CoprocessorRomFilePath;

// Grafika mingħajr mod ta 'sewwieq

// L-issettjar ta ’dan il-callback ifisser li ma tinħoloq l-ebda tieqa, u kollox

// il-grafika mogħtija se tintbagħat awtomatikament lil din il-funzjoni.

Għall-funzjonalità tal-mess, il-funzjonijiet

// Memory.setTouchScreenXY u Memory.resetTouchScreenXY għandhom ikunu

// imsejjaħ manwalment mill-applikazzjoni ospitanti.

// Il-funzjonalità tal-keyboard Builtin mhijiex appoġġjata u trid tkun

// implimentat manwalment meta tuża din il-modalità.

// Il-parametru tal-ħruġ huwa falz (0) meta l-wiri jintefa.

Il-kontenut tal-pointer buffer mhux definit wara dan

// prospetti tal-funzjoni.

// Ritorn falz (0) meta l-applikazzjoni għandha toħroġ, inkella ritorn veru (1).

int (* Grafika) (int output, const argb8888 * buffer, uint32_t hsize, uint32_t

vsize, FT8XXEMU_FrameFlags bnadar);

// Handler tal-interruzzjoni

// null (* Tinterrompi) ();

// Eċċezzjoni callback

null (* Eċċezzjoni) (messaġġ const char *);

// Ħruġ bla periklu

null (* Agħlaq) ();

} FT8XXEMU_EmulatorParameters;

Figura 1 - Definizzjoni tal-istruttura “EmulatorParameters”


2) Bnadar biex jiġi kkonfigurat l-emulator

Il-kampjun tal-kodiċi enumerat muri hawn taħt jiddefinixxi l-karatteristika tal-emulatur li għandha titħaddem biha. Lil

jippermettu karatteristiċi speċifiċi, tista ’“ JEW ”dawn jelenka u tassenja l-valuri tar-riżultat lil

Il-field “Bnadar” fl-istruttura tal-parametri “EmulatorParameters” hawn fuq.

typedef enum

{

// tippermetti li t-tastiera tintuża bħala input (default: on)

FT8XXEMU_EmulatorEnableKeyboard = 0x01,

// tippermetti l-awdjo (default: on)

FT8XXEMU_EmulatorEnableAudio = 0x02,

// tippermetti l-koproċessur (default: on)

FT8XXEMU_EmulatorEnableCoprocessor = 0x04,

// tippermetti lill-maws bħala mess (default: on)

FT8XXEMU_EmulatorEnableMouse = 0x08,

// ngħix li jkun hemm debug shortkeys (default: on)

FT8XXEMU_EmulatorEnableDebugShortkeys = 0x10,

// tippermetti multithreading tal-proċessur tal-grafika (default: on)

FT8XXEMU_EmulatorEnableGraphicsMultithread = 0x20,

// tippermetti degradazzjoni tal-kwalità tal-grafika dinamika billi tingħaqad u tinżel il-frejm

(default: mixgħul)

FT8XXEMU_EmulatorEnableDynamicDegrade = 0x40,

// jippermettu l-emulazzjoni ta 'REG_PWM_DUTY billi tgħawweġ id-displej mogħti għall-iswed

(default: mitfi)

FT8XXEMU_EmulatorEnableRegPwmDutyEmulation = 0x100,

// jippermettu l-użu tal-matriċi tat-trasformazzjoni tal-mess (default: on)

FT8XXEMU_EmulatorEnableTouchTransformation = 0x200,

} FT8XXEMU_EmulatorFlags;

Figura 2 - Definizzjoni tal-qasam tal-bnadar


3) Issettjar tipiku

Għal prestazzjoni ottimali, is-settings hawn taħt huma rakkomandati.

Il-funzjonijiet callback “setup ()” u “loop ()” għandhom jiġu definiti mill-proġett ta 'l-utent u se jkunu

imsejħa mill-emulator. Il-funzjoni “setup ()” hija preżunta li taħdem darba mill-emulatur għall-inizjalizzazzjoni

għanijiet. Il-funzjoni “loop ()” tissejjaħ perjodikament mill-emulatur. Dawn iż-żewġ funzjonijiet jiżguraw

il-proġett tal-utent huwa fil-kuntest tal-emulatur. Il-falliment li jiġu assenjati “setup ()” u “loop ()”

L-emulatur ma jirriżulta fl-ebda input għall-emulator.

Normalment, il-funzjoni “setup ()” u “loop ()” fil-proġett ta ’l-utenti tiddefinixxi l-loġika prinċipali u l-wiri

Il-lista se tintbagħat lill-emulatur permezz ta ’l-interface SPI / I2C.

#inkludi "FT_Platform.h"

#ifdef MSVC_FT800EMU

#inkludi

FT8XXEMU_EmulatorMode Ft_GpuEmu_Mode ();

setup tan-null "C" ta 'barra ();

loop vojt "C" ();

ft_int32_t prinċipali (ft_int32_t argc, ft_char8_t * argv [])

{

FT8XXEMU_EmulatorParameters params;

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

params.Flags & = (~ FT8XXEMU_EmulatorEnableDynamicDegrade &

~ FT8XXEMU_EmulatorEnableRegPwmDutyEmulation);

params.Setup = setup;

params.Loop = linja;

// params.Graphics = grafika;

FT8XXEMU_run (FT8XXEMU_VERSION_API, & params);

ritorn 0;

}

Figura 3 - Ibda l-emulatur FT8xx