درفایلLCDConf.C یکبار ماکروها رو باهم مرور می کنیم.
اولین چیزی که باید کنترل بشه LCD_BITSPERPIXEL است که باید درست باشه. ماکروهای بعد طول و عرض صفحه هستند. YSIZE_PHYSو XSIZE_PHYS. سپس کد رنگ مورد نظرتون رو باید ست کنید. این کد رنگ رو میتونید در صفحه263 انتخاب کنید. انتخاب اون باید باتوجه به دیتاشیت LCD تون انجام بشه.درموردili9320 ماکرو بصورت زیر تعریف میشه:
کد:
// Color conversion
//
#define COLOR_CONVERSION GUICC_666
که نشون میده ال سی دی در واقع 18 بیته (6بیت برای هر رنگ RGB).در خط بعدی باید نوع درایور رو تعریف بفرمایین که برای من GUI_FLEXCOLOR است.
ماکروی بعدی جهت ترسیم رو نشون میده که معمولا بعد از اولین راه اندازی موفق می تونید اون رو تنظیم کنید. من برای نمایش افقی این ماکرو رو فعال کردم:
کد:
#define DISPLAY_ORIENTATION (GUI_SWAP_XY)
دوتا تابع هم هست که باید یه نگاه سر سری بهش بندازید:Init_Controller و LCD_X_Config. دوباره فایل GLCD.C رو باز کنید و تابعی که LCD رو Initialize می کنه رو با تابع IniController مقایسه کنید. باید تقریبا باهم یکی باشند.
تابع LCD_X_Config رو هم ببینید. در قسمتی از اون میبینید که توابع write_reg توش تعریف شده اند(PortAPI). اینجا می تونید ببینید که دقیقا چه توابعی رو باید در فایلتون تعریف می کردید. ولسلام. تموم شد.
دیگه با فایل LCDConf.C کاری نداریم مگه اینکه مشکلی وجود داشته باشه. فایلی که درشاخه LCD_X پیدا کرده اید رو هم در شاخه Config کپی کنید.
خب حالا باید اولین تست رو انجام بدیم. ولی قبلش فایل GUIConf.C رو باز کنید. اینجا باید شما مقداری حافظه به emwin بدهید تا از اون بعنوان بافر استفاده کنه.
دوتا ماکرو هست که من برای پردازنده 1768 بصورت زیر تنظیمش کردم. ممکنه شما بیشتر یا کمترش کنید. برای 1788 بالای 12 مگابایت تنظیم کنید.
[HTML]
کد:
// Define the available number of bytes available for the GUI
//
#define GUI_NUMBYTES 1024 * 16 // x Byte
//
// Define the average block size
//
#define GUI_BLOCKSIZE 0x128
[/HTML]
ماکروی اول که مشخصه ولی ماکروی دوم رو نمیدونم چی میگه.
خب این فایل رو ببندید و فایل GUIConf.h رو باز کنید. در این فایل چند تا ماکروی مهم هست که خودتون بخونید متوجهش میشوید. GUI_SUPPORT_MEMDEV رو باید یک کنید تا استفاده از حافظه ای که تخصیص دادید برای emwin امکانپذیر باشه.
خب الان اگه همه چیز درست باشه میتونیم اولین آزمایش رو انجام بدهیم.
در شاخه Application، یک فایل به نام GUI_Widget_GraphDemo.C هست که باید توی Keil اضافه شده باشه. کنترل کنید و اگه درسته پروژه رو کامپایل کنید و از نتیجه کار لذت ببرید. برای آزمایش، یکبار GUI_SUPPORT_MEMDEV رو صفر کنید و مجددا کامپایل کنید تا اختلاف سرعت نمایش رو درک کنید. فراموش نکنید که فایل درایور LowLevel مربوط به LCD که در اون توابع write_reg , وغیره رو تعریف کردید به پروژه keil اضافه کنید
آزمایش رو انجام بدهید و اگه مشکلی هست به من اطلاع بدهید. وگرنه بفرمایید تا ادامه داستان رو بریم