گھر > خبریں > مواد

FT8xx ایمولٹر لائبریری تعارف

Apr 26, 2019

2 FT8xx ایمولٹر لائبریری تعارف

2.1 FT8xx ایمولٹر لائبریری انٹرفیس

FT8xx ایمولٹر لائبریری کا انٹرفیس C ++ میں لکھا ہے اور "FT800EMU ::" نام میں رہتا ہے.

صرف جگہ. "FT800EMU ::" نام کی جگہ کے اندر، وہاں دو ماڈیولز ہیں "SPII2C" اور

"ایمولیٹر" انٹرفیس کو بے نقاب. یہاں ڈھانچہ ہے:

image

ٹیبل 1 - FT8xx ایمولٹر لائبریری انٹرفیس ڈھانچہ

2.1.1 FT800EMU :: SPII2C.begin ()

 پروٹوٹائپ

صفر شروع ()؛

 تفصیل

ایمولیٹر کے SPI / I2C ماڈیول کو شروع کریں

 واپسی کی قیمت

کوئی بھی نہیں

 پیرامیٹر

کوئی بھی نہیں

2.1.2 FT800EMU :: SPII2C.end ()

 پروٹوٹائپ

باطل (آخر)؛

 تفصیل

ایمولٹر کے SPI / I2C ماڈیول کو شروع کریں

 واپسی کی قیمت

کوئی بھی نہیں

 پیرامیٹر

کوئی بھی نہیں


2.1.3 FT800EMU :: SPII2C.csLow ()

 پروٹوٹائپ

باطل سی ایس ایل ()؛

 تفصیل

اس SPI / I2C منتقلی شروع کرنے کے لئے اس API کو کال کریں. چپ پر چپ منتخب کرنے کے لئے یہ برابر ہے

FT8xx ہارڈویئر میں SPI / I2C بس. میں کے لئے

2C بس، یہ کام ایک شروع کرنے کے برابر ہے

START کے ساتھ پیغام.

 واپسی کی قیمت

کوئی بھی نہیں

 پیرامیٹر

کوئی بھی نہیں


2.1.4 FT800EMU :: SPII2C.csHigh ()

 پروٹوٹائپ

باطل سی ایس ہائی ()؛

 تفصیل

ایک SPI / I2C منتقلی کو ختم کرنے کیلئے اس API کو کال کریں. سپی بس کے لئے، یہ چپ منتخب کرنے کے برابر ہے

SPI / I پر اعلی پن

FT8xx ہارڈ ویئر میں 2C بس. میں کے لئے

2C بس، اس فنکشن کے برابر ہے

STOP کے ساتھ ایک پیغام ختم کریں.

 واپسی کی قیمت

کوئی بھی نہیں

 پیرامیٹر

کوئی بھی نہیں


2.1.5 FT800EMU :: SPII2C.transfer ()

 پروٹوٹائپ

uint8_t منتقلی (uint8_t ڈیٹا)؛

 تفصیل

اس API کو کال کرنا ایک بائٹ منتقل کرنے کے لئے / emulator سے ہے.

بھیجنے کے لئے ڈیٹا ایک پیرامیٹر کے طور پر متعین کیا جاتا ہے، جبکہ اعداد و شمار موصول ہونے کے لئے دیا جاتا ہے

واپسی کی قیمت

 واپسی کی قیمت

FT8xx ایمولیٹر سے وصول کردہ اعداد و شمار کا ایک بائٹ اگر پڑھ لیتا ہے.

 پیرامیٹر

اعداد و شمار کے ایک بائٹ FT8xx ایمیوٹرٹر کو بھیجے گئے ہیں. ایس پی آئی کی منتقلی کی صورت میں، یہ بائٹ ہو سکتا ہے

کچھ بھی


2.1.6 FT800EMU :: Emulator.run ()

 پروٹوٹائپ

باطل چلانے (کانس ایمولیٹر پیرامیٹرز اور پیرامیٹرز)؛

 تفصیل

اس فنکشن کو کال کرنا فوری طور پر ایمولیٹر شروع کرے گا اور درخواست کا کنٹرول ہے

ایمولیٹر کو منتقل emulator کے رویے کے ذریعے ترتیب دیا جاتا ہے

پیرامیٹرز جو منظور کئے گئے ہیں. درخواست کے کوڈ کو دو کے ذریعہ بلایا جائے گا

پیرامیٹر ڈھانچہ میں کال بیک افعال. یہ API کبھی نہیں، جب تک emulator نہیں واپس آئے گا

قتل کیا جاتا ہے یا درخواست کی کارروائی موجود ہے.

 واپسی کی قیمت

کوئی بھی نہیں

 پیرامیٹرز

پیرامیٹر کی تعریف کے بارے میں تفصیلات کے لئے براہ کرم مندرجہ ذیل کوڈ ملاحظہ کریں.


1) پیرامیٹر کی ساخت کی تعریف

typedef struct

{

// مائکروسافٹ کنٹرولر کی تقریب لوپ سے پہلے کہا جاتا ہے.

باطل (* سیٹ اپ) ()؛

// مائکروسافٹ کنٹرولر مسلسل لوپ.

باطل (* لوپ) ()؛

// ایمولٹر فالج دیکھیں.

انٹیل پرچم؛

// ایمولٹر موڈ

FT8XXEMU_Emulator موڈ موڈ؛

// کی بورڈ اپ ڈیٹ کے بعد کال کیا.

// فراہم کردہ فنکشن کی بورڈ.کیکیڈاؤن (FT8XXEMU_KEY_F3) استعمال کرسکتے ہیں.

// یا FT8XXEMU_isKeyDown (FT8XXEMU_KEY_F3) افعال.

باطل (* کی بورڈ) ()؛

// پہلے سے طے شدہ ماؤس دباؤ، ڈیفالٹ 0 (زیادہ سے زیادہ).

// دیکھیں REG_TOUCH_RZTRESH، وغیرہ.

uint32_t MousePressure؛

// بیرونی تعدد. CLK، وغیرہ دیکھیں

uint32_t بیرونی فریقین؛

// مخصوص نمبر، ڈیفالٹ 0 کے ذریعے گرافکس پروسیسر کے موضوعات کو کم کریں

// MCU یا Coprocessor پر بہت بھاری کام کرتے وقت ضروری ہے

uint32_t کم سے کم گرافک موضوعات؛

// ایم ڈبلیو یو دھاگے کے استعمال کے لئے // نیند فنکشن. عام نظام میں غلطیاں

نیند

باطل (* MCUSleep) (int ms)؛

// ایک فائل سے اپنی مرضی کے مطابق ROM کے ساتھ پہلے سے طے شدہ buildin روم کی جگہ لے لیتا ہے.

// نوٹ: سٹرنگ کاپی کیا جاتا ہے اور کال کرنے کے بعد (...) کے بعد خارج کر دیا جاسکتا ہے.

چار * RomFilePath؛

// ایک فائل سے ایک اپنی مرضی کے مطابق OTP کے ساتھ پہلے سے طے شدہ buildin OTP کی جگہ لے لیتا ہے.

// نوٹ: سٹرنگ کاپی کیا جاتا ہے اور کال کرنے کے بعد (...) کے بعد خارج کر دیا جاسکتا ہے.

چار * OtpFilePath؛

// buildin coprocessor روم کو تبدیل کرتا ہے.

// نوٹ: سٹرنگ کاپی کیا جاتا ہے اور کال کرنے کے بعد (...) کے بعد خارج کر دیا جاسکتا ہے.

چار * CoprocessorRomFilePath؛

// گرافکس ڈرائیور بغیر موڈ

// اس کال بیک کی ترتیب کا مطلب ہے کہ کوئی ونڈو پیدا نہیں ہوسکتی ہے، اور تمام

// فراہم کردہ گرافکس خود کار طریقے سے اس تقریب کو بھیجا جائے گا.

// ٹچ کی فعالیت کو فعال کرنے کے لئے، افعال

// Memory.setTouchScreenXY اور Memory.resetTouchScreenXY ہونا ضروری ہے

// میزبان کی درخواست سے دستی طور پر کہا جاتا ہے.

// بلٹین کی بورڈ کی فعالیت کی حمایت نہیں کی جاسکتی ہے

// اس موڈ کا استعمال کرتے ہوئے // دستی طور پر لاگو کیا.

// آؤٹ پٹ پیرامیٹر غلط ہے (0) جب ڈسپلے بند ہوجائے گی.

// بفر پوائنٹر کے مواد اس کے بعد غیر معمولی ہیں

// تقریب واپسی.

// جھوٹ (0) واپسی جب درخواست لازمی ہے، دوسری صورت میں درست (1) واپس.

int (* گرافکس) (انٹرفیس، const argb8888 * بفر، uint32_t hsize، uint32_t

بمقابلہ، FT8XXEMU_FrameFlags پرچم)؛

// مداخلت ہینڈلر

// باطل (* مداخلت) ()؛

// استثنا کالب بیک

باطل (* استثنا) (const چار * پیغام)؛

// محفوظ راستہ

باطل (* بند) ()؛

} FT8XXEMU_Emulator پیرامیٹرز؛

شکل 1 - ساخت کی تعریف "EmulatorPareters"


2) ایمولیٹر کو ترتیب دینے کے لئے پرچم

ذیل میں دکھایا گیا گنتی نمونہ کے ساتھ چلانے کے لئے emulator کی خصوصیت کی وضاحت کرتا ہے. کرنے کے لئے

مخصوص خصوصیات کو فعال کرنے کے لۓ، آپ "OR" کرسکتے ہیں اور ان میں شمار کے اقدار کو شمار کردیتے ہیں

مندرجہ بالا "ایمولٹر پیرامیٹرز" پیرامیٹر کی ساخت میں "پرچم" فیلڈ.

ٹائپڈف اینوم

{

// کی بورڈ کو ان پٹ کے طور پر استعمال کیا جا سکتا ہے (پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableKeyboard = 0x01،

// آڈیو کو قابل بناتا ہے (پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableAudio = 0x02،

// کوپروسیسر کو قابل بناتا ہے (پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableCoprocessor = 0x04،

// ماؤس ٹچ کے طور پر قابل بناتا ہے (پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableMouse = 0x08،

// ڈیبگ شارٹ کو فعال کریں (پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableDebugShortkeys = 0x10،

// گرافکس پروسیسر multithreading کو چالو کرنے (پہلے سے طے شدہ: پر)

FT8XXEMU_Emulator قابل قابل گرافکسمثالہ = 0x20،

// فریم متحرک گرافکس کی معیار کو فعال کرنے اور فریم کو چھوڑنے سے گراؤنڈ کرتے ہیں

(پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableDynamicDegrade = 0x40،

// سیاہ کو مہیا کردہ ڈسپلے کی طرف سے REG_PWM_DUTY کو متحرک کرنا

(پہلے سے طے شدہ: بند)

FT8XXEMU_EmulatorNableRegPwmDutyEmulation = 0x100،

// ٹچ ٹرانسمیشن میٹرکس کے استعمال کو چالو کرنے (پہلے سے طے شدہ: پر)

FT8XXEMU_EmulatorNableTouchTransformation = 0x200،

} FT8XXEMU_EmulatorFlags؛

شکل 2 - پرچم فیلڈ کی تعریف


3) عام ترتیب

بہترین کارکردگی کے لئے، نیچے کی ترتیبات کی سفارش کی جاتی ہے.

کال بیک بیک افعال "سیٹ اپ ()" اور "لوپ ()" صارف کے منصوبے کی طرف سے تعریف کی جائے گی اور وہ ہو گی

امیولٹر کی طرف سے بلایا جاتا ہے. فنکشن "سیٹ اپ ()" کو ایک بار ابتدائی طور پر ایمولیٹر کی طرف سے چلانے کا فرض کیا جاتا ہے

مقاصد. فنکشن "لوپ ()" کو ایولیوٹر کے ذریعے وقفے سے کہا جائے گا. یہ دو افعال یقینی بناتے ہیں

صارف پروجیکٹ ایمولیٹر کے تناظر میں ہے. "سیٹ اپ ()" اور "لوپ () کو تفویض کرنے میں ناکامی

emulator کے نتیجے میں ایمولیٹر کو کوئی ان پٹ کا نتیجہ نہیں ملے گا.

عموما، فنکشن "سیٹ اپ ()" اور "لوپ ()" صارفین کے منصوبے میں اہم منطق اور ڈسپلے کی وضاحت کرتا ہے.

فہرست SPI / I2C انٹرفیس کے ذریعہ emulator کو بھیج دیا جائے گا.

# Fclude "FT_Platform.h"

#ifdef MSVC_FT800EMU

# FT_Emulator.h> شامل کریں

FT8XXEMU_Emulator موڈ Ft_GpuEmu_Mode ()؛

extern "C" سیٹ اپ سیٹ کریں ()؛

extern "C" void loop ()؛

ft_int32_t اہم (ft_int32_t argc، ft_char8_t * argv [])

{

FT8XXEMU_Emulator پیرامیٹر پارام؛

FT8XXEMU_defaults (FT8XXEMU_VERSION_API، اور پیرس، Ft_GpuEmu_Mode ())؛

پیرس. فلگز اور = (~ FT8XXEMU_EmulatorNableDynamicDegrade &

~ FT8XXEMU_EmulatorNableRegPwmDutyEmulation)؛

پیرس. سیٹ اپ = سیٹ اپ؛

پیرس لوپ = لوپ؛

// پیرس. گرافکس = گرافکس؛

FT8XXEMU_run (FT8XXEMU_VERSION_API، اور پیرس)؛

واپسی 0؛

}

شکل 3 - FT8xx ایمولیٹر شروع کریں