הבית > חֲדָשׁוֹת > תוכן

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 ()

 אב טיפוס

void csLow ();

 תיאור

התקשר לממשק API זה כדי להתחיל העברה אחת SPI / I2C. זה שווה כדי למשוך שבב לבחור סיכה על

את SPI / I2C האוטובוס בחומרה FT8xx. אני

2C, פונקציה זו שווה להתחיל א

עם START.

 ערך החזרה

אף אחד

 פרמטר

אף אחד


2.1.4 FT800EMU :: SPII2C.csHigh ()

 אב טיפוס

חלל csHigh ();

 תיאור

התקשר אל ממשק API זה כדי לסיים העברה אחת של SPI / I2C. עבור אוטובוס SPI, זה שווה למשוך שבב לבחור

סיכה גבוהה על SPI / I

2C האוטובוס בחומרה FT8xx. אני

2C, פונקציה זו שווה ל

סיים הודעה עם STOP.

 ערך החזרה

אף אחד

 פרמטר

אף אחד


2.1.5 FT800EMU :: SPII2C.transfer ()

 אב טיפוס

העברת uint8_t (נתונים uint8_t);

 תיאור

קריאה זו API היא להעביר אחד בתים מ / ל אמולטור.

הנתונים שנשלחו מוגדרים כפרמטר, בעוד הנתונים שיתקבלו ניתנים כ

ערך החזרה.

 ערך החזרה

בית אחד של נתונים שהתקבלו מהאמבולטור FT8xx אם הוא נקרא העברה.

 פרמטר

בית אחד של נתונים שנשלחו אמולטור FT8xx. במקרה של העברת SPI לקרוא, זה בית יכול להיות

כל דבר.


2.1.6 FT800EMU :: Emulator.run ()

 אב טיפוס

ריצה ריקה (const emulatorParameters & params);

 תיאור

קריאה לפונקציה זו תפעיל את אמולטור מיד את בקרת היישום הוא

הועברו לאמבולטור. התנהגות של אמולטור מוגדר באמצעות

פרמטרים אשר הועברו. קוד היישום ייקרא דרך שני

פונקציות התקשרות במבנה הפרמטרים. ממשק API זה לעולם לא יחזור, אלא אם כן הוא אמולטור

הוא נהרג או תהליך הגשת הבקשה.

 ערך החזרה

אף אחד

 פרמטרים

בדוק את הקוד הבא לקבלת פרטים על הגדרת פרמטרים.


1) הגדרת מבנה הפרמטרים

קל דגם

{

// פונקציית מיקרו-בקר הנקראת לפני לולאה.

חלל (* הגדרה) ();

// לולאה מתמשכת.

חלל (* לולאה) ();

// ראה EmulatorFlags.

דגלים אינט;

// מצב אמולטור

מצב FT8XXEMU_EmulatorMode;

/ / התקשר לאחר עדכון המקלדת.

/ / פונקציה שסופקה יכול להשתמש Keyboard.isKeyDown (FT8XXEMU_KEY_F3)

// או FT8XXEMU_isKeyDown (FT8XXEMU_KEY_F3).

ריק (* מקלדת) ();

// ברירת המחדל ללחץ העכבר, ברירת המחדל 0 (מקסימום).

// ראה REG_TOUCH_RZTRESH, וכו '.

uint32_t MousePressure;

// תדר חיצוני. ראה CLK, וכו '

uint32_t ExternalFrequency;

/ / להקטין את הליכי המעבד הגרפי לפי מספר שצוין, ברירת המחדל 0

/ / נחוץ כאשר עושים עבודה כבדה מאוד על MCU או מעבד

uint32_t ReduceGraphicsThreads;

// שינה פונקציה עבור מצערת השימוש MCU המצערת. ברירות מחדל למערכת הגנרית

לישון

חלל (* MCUSleep) (int ms);

/ / מחליף את ROM מובנה ברירת המחדל עם ROM מותאם אישית מקובץ.

// הערה: מחרוזת מועתקת וניתן לבטל את ההקשר לאחר השיחה להפעלה (...)

char * RomFilePath;

/ / מחליף את OTP מובנה ברירת המחדל עם OTP מותאם אישית מקובץ.

// הערה: מחרוזת מועתקת וניתן לבטל את ההקשר לאחר השיחה להפעלה (...)

char * OtpFilePath;

/ / מחליף ROM מובנה ROM.

// הערה: מחרוזת מועתקת וניתן לבטל את ההקשר לאחר השיחה להפעלה (...)

char * CoprocessorRomFilePath;

// גרפיקה מצב ללא נהיגה

// הגדרה זו התקשרות פירושו שום חלון לא תיווצר, וכל

/ / גרפיקה שניתנו באופן אוטומטי יישלחו לפונקציה זו.

/ / להפעלת פונקציונליות מגע, הפונקציות

/ / Memory.setTouchScreenXY ו Memory.resetTouchScreenXY חייב להיות

// הנקרא ידנית מתוך היישום המארח.

// פונקציונליות המקלדת המובנית אינה נתמכת וחייבת להיות

/ / מיושם ידנית בעת שימוש במצב זה.

/ / פרמטר הפלט הוא false (0) כאשר הצג כבוי.

/ / התוכן של מצביע המאגר אינם מוגדרים לאחר מכן

חזר מת חזרה

// Return false (0) כאשר היישום חייב לצאת, אחרת לחזור true (1).

int (* גרפיקה) (פלט int, const arg8888 * חיץ, uint32_t hsize, uint32_t

vsize, FT8XXEMU_FrameFlags דגלים);

// מטפל פסיקה

// חלל (* פסיקה) ();

// קריאה יוצאת דופן

חלל (* חריגה) (הודעה char * הודעה);

// יציאה בטוחה

חלל (* סגור) ();

} FT8XXEMU_Emulator פרמטרים;

איור 1 - הגדרת מבנה "אמולטורפרמטרים"


2) דגלים כדי להגדיר את האמולטור

דוגמת הקוד המצוין המוצגת להלן מגדירה את תכונת האמולטור להפעלה באמצעות. ל

לאפשר תכונות ספציפיות, אתה יכול "או" אלה למנות ולהקצות את ערכי התוצאה ל

שדה "דגלים" במבנה הפרמטר "אמולטורפרמטר" לעיל.

הקלדה

{

// מאפשר למקלדת לשמש כקלט (ברירת המחדל: on)

FT8XXEMU_EmulatorEnableKeyboard = 0x01,

// מאפשר שמע (ברירת מחדל: on)

FT8XXEMU_EmulatorEnableAudio = 0x02,

// מאפשר מעבד (ברירת המחדל: on)

FT8XXEMU_EmulatorEnableCoprocessor = 0x04,

// מאפשרת לעכבר לגעת (ברירת המחדל: on)

FT8XXEMU_EmulatorEnableMouse = 0x08,

/ / לאפשר מקשי קיצור debug (ברירת מחדל: on)

FT8XXEMU_EmulatorEnableDebugShortkeys = 0x10,

/ / לאפשר multithreading מעבד גרפי (ברירת המחדל: ב)

FT8XXEMU_EmulatorEnableGraphicsMultithread = 0x20,

/ / לאפשר איכות גרפיקה דינמית משפיל על ידי תשזורת ושחרור מסגרות

(ברירת המחדל: on)

FT8XXEMU_EmulatorEnableDynamicDegrade = 0x40,

/ / לאפשר לדמות REG_PWM_DUTY על ידי דהייה התצוגה שניתנו שחור

(ברירת המחדל: כבוי)

FT8XXEMU_EmulatorEnableRegPwmDutyEmulation = 0x100,

/ / לאפשר שימוש של המטריצה שינוי המגע (ברירת המחדל: ב)

FT8XXEMU_EmulatorEnableTouchTransformation = 0x200,

} FT8XXEMU_EmulatorFlags;

איור 2 - הגדרת שדה דגלים


3) הגדרה אופיינית

לקבלת ביצועים מיטביים, מומלץ לבצע את ההגדרות הבאות.

פונקציות הקריאה "setup ()" (") ו-" loop () "יוגדרו על ידי פרויקט המשתמש והן יהיו

שנקרא על ידי אמולטור. הפונקציה "setup ()" מניחה שהיא מופעלת פעם אחת על ידי אמולטור לאתחול

מטרות. פונקציה "לולאה ()" תקרא מעת לעת על ידי אמולטור. שתי פונקציות אלה להבטיח

פרוייקט המשתמש הוא בהקשר של האמולטור. הכישלון של הקצאת "setup ()" ו- "loop ()"

כדי אמולטור תביא שום קלט אמולטור.

בדרך כלל, הפונקציה "setup (") ו- "loop ()" בפרויקט המשתמשים מגדירה את ההיגיון הראשי ואת התצוגה

רשימה יישלחו אמולטור באמצעות ממשק SPI / I2C.

#include "FT_Platform.h"

#ifdef MSVC_FT800EMU

#include

FT8XXEMU_EmulatorMode Ft_GpuEmu_Mode ();

חיצוני "C" חלל ההתקנה ();

חיצוני "C" לולאה חלל ();

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

{

FT8XXEMU_Emulator פרמטרים params;

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

params.Flags & = (~ FT8XXEMU_EmulatorEnableDynamicDegrade &

~ FT8XXEMU_EmulatorEnableRegPwmDutyEmulation);

params.Setup = הגדרה;

params.Loop = לולאה;

// params.Graphics = גרפיקה;

FT8XXEMU_run (FT8XXEMU_VERSION_API ו- Params);

Return 0;

}

איור 3 - התחל אמולטור FT8xx