Categories
บทความ

SSD1963 + SQI Flash Driver สำหรับ MPLAB Harmony

SSD1963 และ SQI Flash Driver สำหรับ MPLAB Harmony version 1.08

SSD1963 Driver ให้แตกไฟล์ไปไว้ที่โฟลเดอร์ v1_08\framework\driver\gfx\controller แล้วต้องไปเพิ่ม driver ใน harmony config เพิ่มเติม
SQI Flash driver สามารถเพิ่มเข้าไปในโปรเจคแล้วเรียกใช้งานได้เลย ทดสอบกับ SST26VF032B และ SST26VF064B

Download:
SSD1963 driver
SQI Flash driver

Categories
บทความ

เขียนโปรแกรม LED กระพริบด้วย MPLAB Harmony Framework

MPLAB Harmony Framework เป็น Framework หรือ Library สำหรับเขียนโปรแกรมบน Microcontroller 32-bit ของ Microchip รองรับ PIC32MZ, PIC32MX ตัว Framework มี Library ให้ใช้งานหลากหลาย อาทิเช่น USB, TCP/IP stack, Graphics, Wifi, Audio decoder เป็นต้น ข้อดีของ Harmony คือการรวม Library หลายๆตัวไว้ในโปรเจคเดียวกัน สามารถทำได้ง่ายดายและสะดวก หากใครเคยใช้ Microchip Library for Application หรือ MLA การรวม Library ต่างๆไว้ในโปรเจคเดียวกันทำได้ลำบากมาก ผู้ใช้ต้องเพิ่มไฟล์ที่ต้องใช้เข้าไปในโปรเจคเอง ต้องเขียนไฟล์ config สำหรับ Library แต่ละตัวเอง และการทำงานของแต่ละ Library ก็ต้องมีการรอการทำงานกัน ไม่ได้เขียนเป็น state machine แบบ Harmony ข้อดีอีกอย่างของ Harmony คือมี Help ที่ค่อนข้างละเอียดหากสงสัยหรือไม่เข้าใจอะไรสามารถค้นหาในไฟล์ Help ของ Harmony ได้ ผมเคยทดลองใช้งาน STM32CubeF4 ซึ่งการใช้งานก็จะคล้ายๆ Harmony แต่ STM32CubeF4 มี Help ที่ไม่ค่อยละเอียดเท่าไหร่ หากสงสัยในฟังก์ชั่นอะไรในไฟล์ Help ก็ยังมีให้อ่านไม่ค่อยละเอียดครับ

กล่าวถึงข้อดีของ MPLAB Harmony Framework ไปแล้ว ต่อไปขอกล่าวถึงข้อเสียของ Harmony ที่ผมเคยเจอ และถามหลายๆคนแล้วก็ถือว่าเป็นข้อเสียหลักของ Harmony เลยก็คือ การเขียนโปรแกรมแบบ State machine ซึ่งหากใครเคยเขียนโปรแกรมบน Microcontroller ของ Microchip มาแล้วทั้ง PIC16, PIC18, PIC24, PIC32 โดยใช้ภาษาซี หรือ Library แบบเดิม แล้วมาเขียนบน Harmony จะงงเอามากๆ ครั้งแรกที่ผมลองไล่ดูโปรแกรมตัวอย่างของ Harmony ผมไล่ไม่ถูกเลยจริงๆว่าจะเริ่มยังไง จะเขียนตรงไหน จะแก้ไขโปรแกรมตรงไหน ยิ่งถ้าใครไม่ถนัดเรื่อง Structure, Union, Pointer, Function pointer ยิ่งจะงงไปกันใหญ่ เพราะ Harmony ใช้การเขียนโปรแกรมแบบนี้เยอะมาก

วันนี้ผมเลยจะมาเขียนบทความเริ่มต้นการเขียนโปรแกรม LED กระพริบด้วย MPLAB Harmony Framework เอามาให้คนที่สนใจจะเขียนโปรแกรมด้วย Harmony ได้เรียนรู้และศึกษาครับ

มาเริ่มกันที่โปรแกรมที่ต้องดาวน์โหลดมาใช้ในการเขียนโปรแแกรมด้วย Harmony ก็จะมีโปรแกรม MPLAB X IDE, MPLAB XC32 เป็น C Compiler และ MPLAB Harmony Framework ในบทความนี้จะใช้ Harmony เวอร์ชั่น 2.02.00b ซึ่งเป็นเวอร์ชั่นเบต้า โปรแกรมทั้งหมดสามารถดาวน์โหลดได้ฟรีบนเว็บไซต์ของ Microchip ครับ

การติดตั้ง Plugin MPLAB Harmony Configurator
ในกรณีที่ใช้ Harmony เวอร์ชั่นเบต้า เราต้องติดตั้ง Plugin เองโดยเข้าไปที่เมนู Tools -> Plugins

แล้วเลือกที่ Tab Downloaded คลิกที่ปุ่ม Add Plugins… แล้ว Browse ไปหาไฟล์ D:\microchip\harmony\v2_02_00b\utilities\mhc\com-microchip-mplab-modules-mhc.nbm เสร็จแล้วก็คลิกที่ปุ่ม Open

หลังจากนั้นก็คลิกที่ปุ่ม Install

ต่อไปก็ให้คลิกที่ยอมรับ License agreement แล้วคลิกที่ปุ่ม Install แล้วก็รอจนกว่าการติดตั้งจะเสร็จ หลังจากนั้นก็ให้ Restart MPLAB X IDE เพื่อให้การติดตั้ง Plugin สมบูรณ์ก็เป็นอันว่าติดตั้งสำเร็จแล้วครับ

หลังจากที่ติดตั้ง Plugin MPLAB Harmony Configurator เสร็จแล้ว ก็มาเริ่มสร้างโปรเจคสำหรับเขียนโปรแกรมด้วย Harmony กัน โดยเริ่มจากเข้าไปเมนู File -> New Project…

แล้วเลือกที่ Microchip Embedded และ 32-bit MPLAB Harmony Project เสร็จแล้วให้คลิกที่ปุ่ม Next

ขั้นตอนต่อไปจะเป็นการตั้งค่าตำแหน่ง Directory ของ MPLAB Harmony Framework โดยคลิก Browse ไปหา Path ของ Harmony ที่ทำการติดตั้งไว้ แล้วก็ตั้งชื่อโปรเจค เลือก MCU ที่จะใช้แล้วคลิกที่ปุ่ม Finish

หลังจากที่คลิกปุ่ม Finish แล้ว โปรแกรม Harmony Configurator ก็จะแสดงขึ้นมา ในตัวอย่างนี้ยังไม่ใช้ BSP หรือ Board Support Package โดยเราจะตั้งค่าต่างๆเอง โดยเริ่มจากการตั้งค่า Clock ให้กับ MCU ให้ตั้งค่า POSC ให้ตรงกับ Hardware ที่ใช้ เลือก POSCMOD เป็น EC ตั้งค่า UPLLFSEL ให้ตรงกับความถี่ที่ใช้ เลือก PLLICLK เป็น POSC แล้วคลิกที่ปุ่ม Auto-Calculate หลังจากนั้นจะมีหน้าต่างให้ใส่ความถี่ของ MCU ก็ป้อนความถี่ที่ MCU สามารถทำงานได้คือ 200MHz แล้วคลิกที่ปุ่ม Apply หลังจากนั้นโปรแกรมจะทำการคำนวณค่าต่างๆของ PLL ให้เองครับ

ต่อไปก็คือเป็นการตั้งค่า Configuration bit ของ MCU โดยคลิกที่ Tab Options -> Device & Project Configuration เลือก PIC32MZ1024EFE100 Device configuration แล้วก็เข้าไปตั้งค่าต่างๆให้ตรงกับ Hardware ที่ใช้ เช่นหากต่อ ICD3 กับ PGEx2 ก็ให้ตั้งค่า ICE/ICD Comm Channel Select ให้เป็น ICS_PGx2

ต่อไปก็ไปตั้งค่า System timer เพื่อใช้งาน System delay โดยเข้าไปที่ Tab Options -> Harmony Framework Configuration -> System Service -> Timer แล้วทำเครื่องหมายที่ Use Timer System Service

ขั้นตอนต่อไปคือการตั้งค่า Port ของ MCU ให้คลิกที่ Tab Pin Settings บนบอร์ดที่ใช้งาน LED จะต่อกับขา RD11 ให้เข้าไปตั้งค่า RD11 ให้เป็น Output และ LAT = Low ดังรูปด้านล่าง

เมื่อตั้งค่าต่างๆเสร็จเรียบร้อยแล้ว ให้คลิกที่ปุ่ม Generate Code เพื่อให้ MHC สร้างไฟล์ Source code เข้าไปในโปรเจค

หลังจาก Generate code เสร็จแล้ว ในหน้าต่าง Project จะมีโฟล์เดอร์และไฟล์ต่างๆเพิ่มเข้า ไฟล์ที่เราต้องเขียนโปรแกรมเพิ่มเข้าไปจะอยู่ที่ไฟล์ app.c และ app.h โดยที่ Enum สำหรับกำหนด statement ของโปรแกรมและตัวแปล Global จะประกาศไว้ที่ไฟล์ app.h ส่วนไฟล์ app.c ก็จะเป็นไฟล์ที่ใช้เขียนโปรแกรมเพิ่มเติมครับ

มาเริ่มเขียนโปรแกรมไฟกระพริบโดยใช้ MPLAB Harmony Framework กันเลย โดยเริ่มจากการเปิดไฟล์ app.h ขึ้นมา แล้วเพิ่ม statement ของโปรแกรมเข้าไปดังนี้
โดย Statement ที่เพิ่มเข้ามาจะเป็น APP_STATE_TOGGLE_LED และ APP_STATE_WAIT_DELAY

typedef enum
{
	 /* Application's state machine's initial state. */
	 APP_STATE_INIT=0,
	 APP_STATE_TOGGLE_LED,
	 APP_STATE_WAIT_DELAY,

	 /* TODO: Define states used by the application state machine. */

} APP_STATES;

ในส่วนของ Structure สำหรับประกาศตัวแปลแบบ Global ให้เพิ่มตัวแปล SYS_TMR_HANDLE tmrHandle; เข้าไป

typedef struct
{
	/* The application's current state */
	APP_STATES state;
	SYS_TMR_HANDLE tmrHandle;
} APP_DATA;

หลังจากนั้นให้เปิดไฟล์ app.c ขึ้นมา แล้วแก้ไขและเพิ่ม Source code ในฟังก์ชั่น APP_Tasks() ดังนี้

void APP_Tasks ( void )
{

    /* Check the application's current state. */
    switch ( appData.state )
    {
        /* Application's initial state. */
        case APP_STATE_INIT:
        {
            appData.state = APP_STATE_TOGGLE_LED;
            break;
        }

        case APP_STATE_TOGGLE_LED:
        {
            SYS_PORTS_PinToggle(PORTS_ID_0, PORT_CHANNEL_D, PORTS_BIT_POS_11);
            appData.tmrHandle = SYS_TMR_DelayMS(500);
            appData.state = APP_STATE_WAIT_DELAY;
            break;
        }
        
        case APP_STATE_WAIT_DELAY:
        {
            if(SYS_TMR_DelayStatusGet(appData.tmrHandle) == true)
            {
                appData.state = APP_STATE_TOGGLE_LED;
            }
            break;
        }
        
        /* The default state should never be executed. */
        default:
        {
            /* TODO: Handle error in application's state machine. */
            break;
        }
    }
}

การทำงานของโปรแกรมที่ Harmony สร้างขึ้นมาจะเริ่มต้นที่ไฟล์ main.c โดยเริ่มที่ SYS_Initialize ( NULL ); ฟังก์ชั่นนี้จะเป็นการ Initialize ระบบต่างๆของ Harmony รวมถึงฟังก์ชั่น APP_Initialize(); ที่เราสามารถเขียนเพิ่มได้ว่าจะให้มีการ Initialize อะไรบ้าง หลังจาก Initialize เสร็จแล้ว MCU ก็จะเข้าไปทำงานในฟังก์ชั่น SYS_Tasks ( ); ในฟังก์ชั่นนี้ก็จะเรียกฟังก์ชั่น APP_Tasks(); ที่เราเขียนโปรแกรมเพิ่มเข้าไปอีกทีหนึ่ง

  • การทำงานของโปรแกรมในฟังก์ชั่น APP_Tasks(); จะเริ่มที่ State APP_STATE_INIT ใน state นี้ไม่ได้มีการเขียนโปรแกรมอะไรเพิ่มเข้าไป มีเพียวแค่เปลี่ยน state การทำงานไปเป็น APP_STATE_TOGGLE_LED
  • ในส่วนของ state APP_STATE_TOGGLE_LED จะสั่งให้ LED Toggle ด้วยฟังก์ชั่น SYS_PORTS_PinToggle(PORTS_ID_0, PORT_CHANNEL_D, PORTS_BIT_POS_11); Parameter ที่ส่งไปก็มี PORTS_ID_0 คือ ID ของพอร์ทบน MCU มีแค่ ID เดียวคือ 0, PORT_CHANNEL_D คือพอร์ท D, PORTS_BIT_POS_11 คือตำแหน่งบิทที่ 11 หรือ RD11 ที่ต่ออยู่กับ LED นั่นเอง ฟังก์ชั่นอื่นๆที่เกี่ยวของกับ I/O Port สามารถอ่านดูรายละเอียดเพิ่มเติมในไฟล์ Help ของ Harmony ครับ หลังจากที่สั่งให้ LED Toogle แล้ว ต่อไปก็คือการเริ่มต้นหน่วงเวลาโดยใช้ฟังก์ชั่น appData.tmrHandle = SYS_TMR_DelayMS(500); ตัวแปล appData.tmrHandle จะเป็นตัวเก็บ Handle จากฟังก์ชั่น SYS_TMR_DelayMS(500); เอาไว้ เพื่อตรวจสอบว่าการหน่วงเวลาครบแล้วหรือยัง เสร็จแล้ว MCU ก็จะเปลี่ยน state ไปเป็น APP_STATE_WAIT_DELAY
  • ที่ state APP_STATE_WAIT_DELAY MCU จะตรวจสอบว่าการหน่วงเวลาจาก state ก่อนหน้านี้ครบเวลาแล้วหรือยังโดยใช้ฟังก์ชั่น if(SYS_TMR_DelayStatusGet(appData.tmrHandle) == true) หากหน่วงเวลาจนครบแล้ว จะ Return ค่ากลับมาเป็น 1 แต่ถ้ายังไม่ครบเวลาก็จะส่งค่ากลับมาเป็น 0 หลังจากหน่วงเวลาครบแล้ว MCU ก็จะเปลี่ยน state เป็น APP_STATE_TOGGLE_LED เพื่อ Toggle LED อีกครั้ง การทำงานของโปรแกรมก็จะวนลูปอย่างนี้ไปตลอดเวลาครับ

จากตัวอย่างการเขียนโปรแกรมโดยใช้ State machine จะเห็นว่าเราไม่ต้องรอให้หน่วงเวลาจนครบเวลาแล้วค่อยไปทำงานอย่างอื่น การหน่วงเวลาเราสามารถตรวจสอบได้ว่าครบเวลาแล้วหรือยัง หากยังไม่ครบเราก็สามารถไปทำงานอื่นๆได้ โดยไม่ต้องเสียเวลาไปกับการหน่วงเวลาครับ

Categories
บทความ

เพิ่ม ฺBoard Support Package ใน MPLAB Harmony

วิธีการเพิ่ม Board Support Package (BSP) สำหรับ MPLAB Harmony สามารถทำได้โดยการคัดลอกไฟล์ bsp ที่มีอยู่แล้วมาแก้ไข ซึ่งวิธีการนี้จะช่วยให้เราเพิ่ม bsp ได้เร็วกว่าการมาเขียนเองใหม่หมด ตัวอย่างนี้จะคัดลอกไฟล์จากโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga มาแก้ไขให้เป็น bsp ของเราเองโดยใช้ชื่อว่า PIC32MZ SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ bsp/pic32mz_ec_sk+s1d_pictail+wqvga แล้วเปลี่ยนชื่อเป็น bsp/pic32mz_ssd1963 เสร็จแล้วให้เข้าไปแก้ไข source code ในไฟล์ bsp/pic32mz_ssd1963/bsp_sys_init.c และไฟล์ bsp/pic32mz_ssd1963/bsp_config.h ให้ตรงกับวงจรที่เราออกแบบ ต่อไปก็แก้ไขไฟล์ bsp/pic32mz_ssd1963/xml/bsp.xml ให้ตรงกับ hardware ของเราดังเช่น

<?xml version=”1.0″?>
<bsp name=”pic32mz_ssd1963″>
<function name=”USB_VBUS_SWITCH” pin=”RB13″ direction=”out” mode=”digital”/>
</bsp>

หลังจากนั้นให้เข้าไปเพิ่ม BSP ของเราในไฟล์ bsp/config/bsp.hconfig ตามตัวอย่างด้านล่างครับ

enum DS60001191_BSP
“PIC32MZ EC PIM w/ Bluetooth Audio Development Kit”
|| “PIC32MZ EC PIM w/ Explorer16”
|| “PIC32MZ EC Starter Kit”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II”
|| “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass”
|| “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass”
|| “PIC32MZ SSD1963”

 

config BSP_USE_USBSWITCH
bool
depends on DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”

 

config BSP_14
bool
depends on DS60001191_FAMILY = “PIC32MZ SSD1963”
select USE_GFX_TRULY_7_800X480_NEEDED
select USE_DRV_GFX_SSD1926_NEEDED
select USE_GFX_STACK
default y

 

config BSP_POSC_24MHz
bool
depends on DS60001191_FAMILY = “PIC32MZ EC PIM w/ Bluetooth Audio Development Kit” ||
DS60001191_FAMILY = “PIC32MZ EC PIM w/ Explorer16” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ Multimedia Expansion Board (MEB) II and WVGA glass” ||
DS60001191_FAMILY = “PIC32MZ EC Starter Kit w/ S1D13517 Pictail+ and WQVGA glass” ||
DS60001191_FAMILY = “PIC32MZ SSD1963”
default y

 

default “pic32mz_ssd1963” if  DS60001191_FAMILY = “PIC32MZ SSD1963”

 

ifblock DS60001191_FAMILY = “PIC32MZ SSD1963”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_H “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_config.h” to “$PROJECT_HEADER_FILES/bsp/pic32mz_ssd1963/bsp_config.h”
file BSP_pic32mz_ec_sk_s1d_pictail_wqvga_C “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963/bsp_sys_init.c” to “$PROJECT_SOURCE_FILES/bsp/pic32mz_ssd1963/bsp_sys_init.c”
compiler COMPILER_BSP_INCLUDE26 includepath “$HARMONY_VERSION_PATH/bsp/pic32mz_ssd1963”
endif

Categories
บทความ

เพิ่ม LCD Controller ใน MPLAB Harmony

การเพิ่ม LCD Controller ใน MPLAB เพื่อให้รองรับ LCD Controller ที่เราจะใช้สามารถทำได้โดยการคัดลอกไฟล์ต่างๆของ LCD Controller ที่มีอยู่แล้วมาแก้ไข วิธีการนี้จะง่ายและเร็วกว่าการเขียนเองใหม่หมด ตัวอย่างนี้จะเป็นการคัดลอก LCD Controller SSD1926 มาแก้ไขเพื่อใช้งานกับ LCD Controller SSD1963 ครับ

เริ่มจากคัดลอกโฟล์เดอร์ framework/driver/gfx/controller/ssd1926 แล้วแก้ไขชื่อเป็น framework/driver/gfx/controller/ssd1963 เสร็จแล้วให้เข้าไปเปลี่ยนชื่อไฟล์จาก ssd1926 เป็น ssd1963 หลังจากนั้นให้แก้ไข Source code ในไฟล์ framework/driver/gfx/controller/ssd1963/drv_gfx_ssd1963.h และ framework/driver/gfx/controller/ssd1963/src/drv_gfx_ssd1963.c ให้เป็นของ SSD1963 ในขั้นตอนการแก้ไข source code นี้จะขอข้ามไปนะครับ เนื่องจากการแก้ไข source code มีรายละเอียดค่อนข้างเยอะ

ต่อไปให้แก้ไข harmony config ในโฟล์เดอร์ framework/driver/gfx/controller/ssd1963/config ดังนี้

drv_gfx_ssd1963.hconfig

menu “SSD1963”

config USE_DRV_GFX_SSD1963_NEEDED
bool

config USE_DRV_GFX_SSD1963
bool “Use SSD1963 Driver?”
select DRIVER
select USE_DRV_PMP_NEEDED
default n if !USE_DRV_GFX_SSD1963_NEEDED
default y if USE_DRV_GFX_SSD1963_NEEDED
—help—
IDH_HTML_Graphics_Driver_Library
—endhelp—
endmenu

ifblock USE_DRV_GFX_SSD1963
file DRV_GFX_SSD1963_H “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/drv_gfx_ssd1963.h” to “$PROJECT_HEADER_FILES/framework/driver/gfx/controller/gfx_ssd1963/drv_gfx_ssd1963.h”
file DRV_GFX_SSD1963_C “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/src/drv_gfx_ssd1963.c” to “$PROJECT_SOURCE_FILES/framework/driver/gfx/controller/gfx_ssd1963/src/drv_gfx_ssd1963.c”
endif

ส่วนไฟล์ drv_gfx_ssd1963_config.h.ftl, drv_gfx_ssd1963_config_template.h, drv_gfx_ssd1963_init.c.ftl, drv_gfx_ssd1963_init_data.c.ftl ให้แก้ไขจาก SSD1926 เป็น SSD1963

สุดท้ายให้เพิ่มข้อความด้านล่างไปในไฟล์ framework/driver/gfx/controller/config/drv_gfx_controller.hconfig

source “$HARMONY_VERSION_PATH/framework/driver/gfx/controller/ssd1963/config/drv_gfx_ssd1963.hconfig”

Categories
บทความ

เพิ่ม LCD Display ใน MPLAB Harmony

วิธีการเพิ่ม LCD Display ใน MPLAB Harmony สามารถทำได้ง่ายๆโดยการคัดลอกไฟล์ของ LCD ที่มีอยู่แล้ว มาแก้ไขให้ตรงกับ LCD ที่เราต้องการครับ
ในตัวอย่างนี้จะคัดลอกไฟล์ LCD ของ truly_7_800x480 มาแก้ไขให้ใช้งานกับจอ LCD MI0700LT ครับ
ขั้นแรกให้คัดลอกโฟล์เดอร์ truly_7_800x480 แล้วเปลี่ยนชื่อเป็น mi0700lt_7_800x480 หลังจากนั้นให้เข้าไปเปลี่ยนชื่อไฟล์ดังนี้
drv_gfx_truly_7_800x480.h เปลี่ยนเป็น drv_gfx_mi0700lt_7_800x480.h
config/truly_7_800x480.hconfig เปลี่ยนเป็น config/mi0700lt_7_800x480.hconfig
เสร็จแล้วให้เข้าไปแก้ไขค่าต่างๆของ LCD ในไฟล์ drv_gfx_mi0700lt_7_800x480.h ให้ตรงกับ LCD ที่เราจะใช้ดังนี้

#define DISP_ORIENTATION 0
#define DISP_HOR_RESOLUTION 800
#define DISP_VER_RESOLUTION 480
#define DISP_DATA_WIDTH 18
#define DISP_HOR_PULSE_WIDTH 1
#define DISP_HOR_BACK_PORCH 46
#define DISP_HOR_FRONT_PORCH 210
#define DISP_VER_PULSE_WIDTH 1
#define DISP_VER_BACK_PORCH 23
#define DISP_VER_FRONT_PORCH 131
#define DISP_INV_LSHIFT 0
#define GFX_LCD_TYPE GFX_LCD_TFT
#define BACKLIGHT_ENABLE_LEVEL 1
#define BACKLIGHT_DISABLE_LEVEL 0
#define TCON_MODULE NULL

ต่อไปก็เข้าไปแก้ไขไฟล์ config/mi0700lt_7_800x480.hconfig ให้เป็นแบบด้านล่าง

menu “MI0700LT 7\” 800×480 (WVGA) Display”

config USE_GFX_MI0700LT_7_800X480_NEEDED
bool

config USE_GFX_MI0700LT_7_800X480
bool “Use MI0700LT 7\” 800×480 (WVGA) Display?”
default n if !USE_GFX_MI0700LT_7_800X480_NEEDED
default y if USE_GFX_MI0700LT_7_800X480_NEEDED
—help—
IDH_HTML_Graphics_Driver_Library
—endhelp—

endmenu

สุดท้ายให้เข้าไปเพิ่มข้อความด้านล่างในไฟล์ framework/driver/gfx/display/config/drv_gfx_display.hconfig

source “$HARMONY_VERSION_PATH/framework/driver/gfx/display/mi0700lt_7_800x480/config/mi0700lt_7_800x480.hconfig”