Bosh sahifa > Yangiliklar > Kontent

FT8xx Emulator Kutubxonasi Kirish

Apr 26, 2019

2 FT8xx Emulator kutubxonasi Kirish

2.1 FT8xx Emulator kutubxonasi interfeysi

FT8xx Emulator kutubxonasining interfeysi C ++ da yozilgan va "FT800EMU ::" da joylashgan

faqat joy. "FT800EMU ::" nom maydoni ichida "SPII2C" va ikkita modul mavjud

"Emulator" interfeysi paydo bo'lishi. Mana struktur:

image

Jadval 1 - FT8xx Emulator kutubxonasi interfeysi tuzilishi

2.1.1 FT800EMU :: SPII2C.begin ()

 Prototip

void start ();

 Ta'rif

Emulatorning SPI / I2C modulini ishga tushiring

 Qaytish qiymati

Yo'q

 parametr

Yo'q

2.1.2 FT800EMU :: SPII2C.end ()

 Prototip

void end ();

 Ta'rif

Emulatorning SPI / I2C modulini ishga tushirish

 Qaytish qiymati

Yo'q

 parametr

Yo'q


2.1.3 FT800EMU :: SPII2C.csLow ()

 Prototip

void csLow ();

 Ta'rif

SPI / I2C transferini boshlash uchun ushbu API-ga qo'ng'iroq qiling. Bu chip tanlab olish pinini pastga tushirishga teng

FT8xx qurilmasidagi SPI / I2C avtotransporti. Men uchun

2C avtoulovi, bu funksiya a boshlash uchun tengdir

START bilan xabar.

 Qaytish qiymati

Yo'q

 parametr

Yo'q


2.1.4 FT800EMU :: SPII2C.csHigh ()

 Prototip

void csHigh ();

 Ta'rif

SPI / I2C o'tkazishini tugatish uchun ushbu API-ga qo'ng'iroq qiling. SPI avtoulovi uchun bu chip tanloviga mos keladi

SPI / I bo'yicha yuqori pin

FT8xx apparatida 2C avtobus. Men uchun

2C avtoulovi, bu funksiya mos keladi

STOP bilan xabarni tugatish.

 Qaytish qiymati

Yo'q

 parametr

Yo'q


2.1.5 FT800EMU :: SPII2C.transfer ()

 Prototip

uint8_t uzatish (uint8_t ma'lumotlar);

 Ta'rif

Ushbu APIni chaqirish - bir baytni / emulyatorga o'tkazish.

Yuboriladigan ma'lumotlar parametr sifatida ko'rsatiladi, qabul qilinadigan ma'lumotlar a

qaytish qiymati.

 Qaytish qiymati

FT8xx emulyatoridan olingan ma'lumotlarning bir bayt o'qilishi bo'lsa o'qiladi.

 parametr

FT8xx emulyatoriga jo'natilgan ma'lumotlar bir baytda. Agar SPI o'tkazib yuborilsa, bu bayt bo'lishi mumkin

har qanday narsa.


2.1.6 FT800EMU :: Emulator.run ()

 Prototip

void ishga tushirish (const EmulatorParameters & params);

 Ta'rif

Ushbu funktsiyani chaqirish, darhol emulyatorni ishga tushiradi va dasturni nazorat qiladi

emulyatorga o'tkaziladi. Emulatorning xatti-harakatlari orqali tuzilgan

O'tkazilgan parametrlardan ikkitasi chaqiriladi

parametr tuzilmasida qayta chaqiruv funktsiyalari. Ushbu API, emulator bo'lmasa, hech qachon qaytarilmaydi

o'ldiriladi yoki dastur jarayoni mavjud.

 Qaytish qiymati

Yo'q

 Parametrlar

Parametr ta'rifi tafsilotlari uchun quyidagi kodni tekshiring.


1) Parametr strukturasining ta'rifi

typedef struct

{

// oldin pastadir deb nomlangan mikrokontroler funktsiyasi.

void (* O'rnatish) ();

// Mikro tekshirgichni doimiy tsikl.

void (* Loop) ();

// EmulatorFlags-ga qarang.

int Flags;

Emulator rejimi

FT8XXEMU_EmulatorMode rejimi;

// Klaviatura yangilanishidan keyin chaqirilgan.

// Kiritilgan funksiya Keyboard.isKeyDown (FT8XXEMU_KEY_F3)

// yoki FT8XXEMU_isKeyDown (FT8XXEMU_KEY_F3) funktsiyalari.

void (* klaviatura) ();

// Standart sichqoncha bosimi, standart 0 (maksimal).

REG_TOUCH_RZTRESH ga qarang.

uint32_t MousePressure;

// tashqi chastota. CLK ga qarang.

uint32_t Tashqi Fraktsiya;

// Grafik ishlovchilarning ishlarini belgilangan raqamga, asl qiymati 0 ga kamaytiring

// MCU yoki Coprocessorda juda og'ir ishlarni amalga oshirishda kerak

uint32_t ReduceGraphicsThreads;

MCU tarmoqqa ishlov berish uchun gazni ishlaydigan uyqu funktsiyasi. Tarkibiy tizimga sukut

uyqu

void (* MCUSleep) (int ms);

// Birlamchi ROM bilan fayldan standart ichki ROMni o'zgartiradi.

// QAYD: String nusxalanadi va ishga tushirilgandan so'ng ajratiladi (...)

char * RomFilePath;

// Birlamchi OTP bilan standart ichki OTP o'rnini o'zgartiradi.

// QAYD: String nusxalanadi va ishga tushirilgandan so'ng ajratiladi (...)

char * OtpFilePath;

// O'rnatilgan protsessor ROMni o'zgartiradi.

// QAYD: String nusxalanadi va ishga tushirilgandan so'ng ajratiladi (...)

char * CoprocessorRomFilePath;

// Grafika haydovchisiz rejim

// Ushbu chaqiriqni sozlash hech qanday oyna yaratilmasligini va barchasini bildiradi

// ko'rsatilgan grafikalar avtomatik ravishda ushbu funktsiyaga yuboriladi.

// Tegish funksiyani yoqish uchun funktsiyalar

Memory.setTouchScreenXY va Memory.resetTouchScreenXY bo'lishi kerak

// host dasturidan qo'lda chaqiriladi.

// Builtin klaviatura funksiyasi qo'llab-quvvatlanmaydi va bo'lishi kerak

// ushbu rejimdan foydalanganda qo'lda qo'llaniladi.

// Displey yopilganda chiqdi parametri noto'g'ri (0).

// Bufer ko'rsatkichi tarkibidan keyin bu aniqlanmagan

// funksiya qaytadi.

FALSE (0) dasturni o'chirib qo'yishi kerak, aks holda (1) rostini qaytaradi.

int (* Graphics) (int chiqishi, const argb8888 * bufer, uint32_t hsize, uint32_t

vsize, FT8XXEMU_FrameFlags bayroqlari);

// ishni tugatish mashinkasi

// void (* interrupt) ();

// Istisnolarni qaytarish

void (* Exception) (const char * xabari);

// Xavfsiz chiqish

void (* Yopish) ();

} FT8XXEMU_EmulatorParameters;

Shakl 1 - "EmulatorParameters" strukturasining ta'rifi


2) Emulyatorni sozlash bayroqlari

Quyida keltirilgan raqam kodi namunasi ishlashga mo'ljallangan emulator xususiyatini belgilaydi. To

muayyan xususiyatlarni faollashtirsa, siz "OR" bu numaralandırabilir va natija qiymatlarini belgilashingiz mumkin

Yuqoridagi "EmulatorParameters" parametr tuzilmasida "bayroqlar" maydoni.

typedef enum

{

// klaviaturani kirish sifatida ishlatishga imkon beradi (asl qiymati: on)

FT8XXEMU_EmulatorEnableKeyboard = 0x01,

// audio funksiyasini yoqadi (asl qiymati: yoqilgan)

FT8XXEMU_EmulatorEnableAudio = 0x02,

// protsessorni ishga tushirishga imkon beradi (asl qiymati: ochiq)

FT8XXEMU_EmulatorEnableCoprocessor = 0x04,

// sichqonchani sensor sifatida taqdim qiladi (asl qiymati: yoqilgan)

FT8XXEMU_EmulatorEnableMouse = 0x08,

// o'chirib qo'yish uchun qisqa klavishlar (standart: on)

FT8XXEMU_EmulatorEnableDebugShortkeys = 0x10,

// grafik protsessorni ko'p ishlov berishni yoqish (standart: on)

FT8XXEMU_EmulatorEnableGraphicsMultithread = 0x20,

// ramkalarni interlacing va tushirish orqali dinamik grafik sifati yomonlashtirilishini ta'minlaydi

(asl qiymati: ochiq)

FT8XXEMU_EmulatorEnableDynamicDegrade = 0x40,

// renderlash ekranni qora rangga o'tkazib, REG_PWM_DUTYni takrorlash imkonini beradi

(asl qiymati: yopiq)

FT8XXEMU_EmulatorEnableRegPwmDutyEmulation = 0x100,

// tegib turish matritsasidan foydalanishga ruxsat berish (asl qiymati: on)

FT8XXEMU_EmulatorEnableTouchTransformation = 0x200,

} FT8XXEMU_EmulatorFlags;

Shakl 2 - Bayroqlar maydonini aniqlash


3) Odatda sozlama

Eng yaxshi ishlashi uchun quyidagi sozlamalar tavsiya etiladi.

"O'rnatish ()" va "loop ()" funksiyalarini qayta tiklash funktsiyasi foydalanuvchi loyihasi tomonidan belgilanadi va ular bo'ladi

emulyator tomonidan chaqirilgan. "O'rnatish ()" funktsiyasi ishga tushirish uchun emulator tomonidan bir marta ishlatilishi mumkin

maqsadlar. "Loop ()" funksiyasi vaqti-vaqti bilan emulyatorlar tomonidan chaqiriladi. Bu ikki vazifani kafolatlaydi

foydalanuvchi loyihasi emulyator kontekstida. "Setup ()" va "loop ()" funktsiyalarini belgilash muvaffaqiyatsizligi

emulyatorga emulyatorni kiritishiga olib kelmaydi.

Odatda foydalanuvchining loyihasida "setup ()" va "loop ()" funktsiyasi asosiy mantiqni va displeyni belgilaydi

ro'yxati SPI / I2C interfeysi orqali emulyatorga yuboriladi.

#include "FT_Platform.h"

#ifdef MSVC_FT800EMU

#include

FT8XXEMU_EmulatorMode Ft_GpuEmu_Mode ();

extern "C" void setup ();

extern "C" void loop ();

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

{

FT8XXEMU_EmulatorParameters parametrlari;

FT8XXEMU_defaults (FT8XXEMU_VERSION_API & params, Ft_GpuEmu_Mode ());

params.Flags & = (~ FT8XXEMU_EmulatorEnableDynamicDegrade &

~ FT8XXEMU_EmulatorEnableRegPwmDutyEmulation);

params.Setup = sozlash;

params.Loop = pastadir;

// params.Graphics = grafikalar;

FT8XXEMU_run (FT8XXEMU_VERSION_API, params);

qaytish 0;

}

Shakl 3 - FT8xx emulyatorini ishga tushiring