NXP
/
rt1050_emwin_gui_demo
RT1050 GUI demo using emWin library
source/emwin_support.h@0:dd702039127a, 2018-09-20 (annotated)
- 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?
User | Revision | Line number | New 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 |