RT1050 GUI demo using emWin library

Committer:
alejandroRL
Date:
Thu Sep 20 19:16:34 2018 +0000
Revision:
0:dd702039127a
emWin GUI Demo for RT1050

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alejandroRL 0:dd702039127a 1 /*
alejandroRL 0:dd702039127a 2 * The Clear BSD License
alejandroRL 0:dd702039127a 3 * Copyright (c) 2016, Freescale Semiconductor, Inc.
alejandroRL 0:dd702039127a 4 * Copyright 2016-2017 NXP
alejandroRL 0:dd702039127a 5 * All rights reserved.
alejandroRL 0:dd702039127a 6 *
alejandroRL 0:dd702039127a 7 * Redistribution and use in source and binary forms, with or without modification,
alejandroRL 0:dd702039127a 8 * are permitted (subject to the limitations in the disclaimer below) provided
alejandroRL 0:dd702039127a 9 * that the following conditions are met:
alejandroRL 0:dd702039127a 10 *
alejandroRL 0:dd702039127a 11 * o Redistributions of source code must retain the above copyright notice, this list
alejandroRL 0:dd702039127a 12 * of conditions and the following disclaimer.
alejandroRL 0:dd702039127a 13 *
alejandroRL 0:dd702039127a 14 * o Redistributions in binary form must reproduce the above copyright notice, this
alejandroRL 0:dd702039127a 15 * list of conditions and the following disclaimer in the documentation and/or
alejandroRL 0:dd702039127a 16 * other materials provided with the distribution.
alejandroRL 0:dd702039127a 17 *
alejandroRL 0:dd702039127a 18 * o Neither the name of the copyright holder nor the names of its
alejandroRL 0:dd702039127a 19 * contributors may be used to endorse or promote products derived from this
alejandroRL 0:dd702039127a 20 * software without specific prior written permission.
alejandroRL 0:dd702039127a 21 *
alejandroRL 0:dd702039127a 22 * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
alejandroRL 0:dd702039127a 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
alejandroRL 0:dd702039127a 24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
alejandroRL 0:dd702039127a 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
alejandroRL 0:dd702039127a 26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
alejandroRL 0:dd702039127a 27 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
alejandroRL 0:dd702039127a 28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
alejandroRL 0:dd702039127a 29 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
alejandroRL 0:dd702039127a 30 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
alejandroRL 0:dd702039127a 31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
alejandroRL 0:dd702039127a 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
alejandroRL 0:dd702039127a 33 */
alejandroRL 0:dd702039127a 34
alejandroRL 0:dd702039127a 35 #ifndef _EMWIN_SUPPORT_H_
alejandroRL 0:dd702039127a 36 #define _EMWIN_SUPPORT_H_
alejandroRL 0:dd702039127a 37
alejandroRL 0:dd702039127a 38 /* Macros for the LCD controller. */
alejandroRL 0:dd702039127a 39 #define APP_ELCDIF LCDIF
alejandroRL 0:dd702039127a 40
alejandroRL 0:dd702039127a 41 #define APP_IMG_HEIGHT 272
alejandroRL 0:dd702039127a 42 #define APP_IMG_WIDTH 480
alejandroRL 0:dd702039127a 43 #define APP_HSW 41
alejandroRL 0:dd702039127a 44 #define APP_HFP 4
alejandroRL 0:dd702039127a 45 #define APP_HBP 8
alejandroRL 0:dd702039127a 46 #define APP_VSW 10
alejandroRL 0:dd702039127a 47 #define APP_VFP 4
alejandroRL 0:dd702039127a 48 #define APP_VBP 2
alejandroRL 0:dd702039127a 49 #define APP_POL_FLAGS \
alejandroRL 0:dd702039127a 50 (kELCDIF_DataEnableActiveHigh | kELCDIF_VsyncActiveLow | kELCDIF_HsyncActiveLow | kELCDIF_DriveDataOnRisingClkEdge)
alejandroRL 0:dd702039127a 51
alejandroRL 0:dd702039127a 52 /* Display. */
alejandroRL 0:dd702039127a 53 #define LCD_DISP_GPIO GPIO1
alejandroRL 0:dd702039127a 54 #define LCD_DISP_GPIO_PIN 2
alejandroRL 0:dd702039127a 55 /* Back light. */
alejandroRL 0:dd702039127a 56 #define LCD_BL_GPIO GPIO2
alejandroRL 0:dd702039127a 57 #define LCD_BL_GPIO_PIN 31
alejandroRL 0:dd702039127a 58
alejandroRL 0:dd702039127a 59 /* Macros for the touch touch controller. */
alejandroRL 0:dd702039127a 60 #define BOARD_TOUCH_I2C LPI2C1
alejandroRL 0:dd702039127a 61
alejandroRL 0:dd702039127a 62 /* Select USB1 PLL (480 MHz) as master lpi2c clock source */
alejandroRL 0:dd702039127a 63 #define LPI2C_CLOCK_SOURCE_SELECT (0U)
alejandroRL 0:dd702039127a 64 /* Clock divider for master lpi2c clock source */
alejandroRL 0:dd702039127a 65 #define LPI2C_CLOCK_SOURCE_DIVIDER (5U)
alejandroRL 0:dd702039127a 66
alejandroRL 0:dd702039127a 67 #define BOARD_TOUCH_I2C_CLOCK_FREQ ((CLOCK_GetFreq(kCLOCK_Usb1PllClk) / 8) / (LPI2C_CLOCK_SOURCE_DIVIDER + 1U))
alejandroRL 0:dd702039127a 68 #define BOARD_TOUCH_I2C_BAUDRATE 100000U
alejandroRL 0:dd702039127a 69
alejandroRL 0:dd702039127a 70 #define LPI2C_DATA_LENGTH 32U
alejandroRL 0:dd702039127a 71
alejandroRL 0:dd702039127a 72 #define LPI2C_MASTER_IRQ LPI2C1_IRQn
alejandroRL 0:dd702039127a 73 #define LPI2C_MASTER_IRQHandler LPI2C1_IRQHandler
alejandroRL 0:dd702039127a 74 #define BOARD_TOUCH_INT_PORT PORTA
alejandroRL 0:dd702039127a 75 #define BOARD_TOUCH_INT_PIN 2
alejandroRL 0:dd702039127a 76
alejandroRL 0:dd702039127a 77 #define BOARD_LCD_READABLE 1
alejandroRL 0:dd702039127a 78
alejandroRL 0:dd702039127a 79 #define LCD_WIDTH 480
alejandroRL 0:dd702039127a 80 #define LCD_HEIGHT 272
alejandroRL 0:dd702039127a 81 #define LCD_BITS_PER_PIXEL 8
alejandroRL 0:dd702039127a 82 #define LCD_BYTES_PER_PIXEL (LCD_BITS_PER_PIXEL / 8)
alejandroRL 0:dd702039127a 83
alejandroRL 0:dd702039127a 84 /* Color depth dependent definitions */
alejandroRL 0:dd702039127a 85 #if LCD_BITS_PER_PIXEL == 8
alejandroRL 0:dd702039127a 86 #define DISPLAY_DRIVER GUIDRV_LIN_8
alejandroRL 0:dd702039127a 87 #define COLOR_CONVERSION GUICC_0
alejandroRL 0:dd702039127a 88 #define ELCDIF_PIXEL_FORMAT kELCDIF_PixelFormatRAW8
alejandroRL 0:dd702039127a 89 #define APP_LCDIF_DATA_BUS kELCDIF_DataBus8Bit
alejandroRL 0:dd702039127a 90 #elif LCD_BITS_PER_PIXEL == 16
alejandroRL 0:dd702039127a 91 #define DISPLAY_DRIVER GUIDRV_LIN_16
alejandroRL 0:dd702039127a 92 #define COLOR_CONVERSION GUICC_M565
alejandroRL 0:dd702039127a 93 #define ELCDIF_PIXEL_FORMAT kELCDIF_PixelFormatRGB565
alejandroRL 0:dd702039127a 94 #define APP_LCDIF_DATA_BUS kELCDIF_DataBus16Bit
alejandroRL 0:dd702039127a 95 #else
alejandroRL 0:dd702039127a 96 #define DISPLAY_DRIVER GUIDRV_LIN_32
alejandroRL 0:dd702039127a 97 #define COLOR_CONVERSION GUICC_M8888I
alejandroRL 0:dd702039127a 98 #define ELCDIF_PIXEL_FORMAT kELCDIF_PixelFormatXRGB8888
alejandroRL 0:dd702039127a 99 #define APP_LCDIF_DATA_BUS kELCDIF_DataBus16Bit
alejandroRL 0:dd702039127a 100 #endif
alejandroRL 0:dd702039127a 101
alejandroRL 0:dd702039127a 102 /* Define scale factors */
alejandroRL 0:dd702039127a 103 #define GUI_SCALE_FACTOR 0.8
alejandroRL 0:dd702039127a 104 #define GUI_SCALE_FACTOR_X 1.5
alejandroRL 0:dd702039127a 105 #define GUI_SCALE_FACTOR_Y 1.1
alejandroRL 0:dd702039127a 106
alejandroRL 0:dd702039127a 107 /* Use larger fonts */
alejandroRL 0:dd702039127a 108 #define GUI_NORMAL_FONT (&GUI_Font24_ASCII)
alejandroRL 0:dd702039127a 109 #define GUI_LARGE_FONT (&GUI_Font32B_ASCII)
alejandroRL 0:dd702039127a 110
alejandroRL 0:dd702039127a 111 #define GUI_BUFFERS 2
alejandroRL 0:dd702039127a 112 #define GUI_NUMBYTES 20000U /*! Amount of memory assigned to the emWin library */
alejandroRL 0:dd702039127a 113
alejandroRL 0:dd702039127a 114 #define FRAME_BUFFER_ALIGN 64
alejandroRL 0:dd702039127a 115
alejandroRL 0:dd702039127a 116 #define VRAM_SIZE (LCD_HEIGHT * LCD_WIDTH * LCD_BYTES_PER_PIXEL)
alejandroRL 0:dd702039127a 117
alejandroRL 0:dd702039127a 118 extern int BOARD_Touch_Poll(void);
alejandroRL 0:dd702039127a 119
alejandroRL 0:dd702039127a 120 #endif