]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_M4_AMP_STM32H745I_Discovery_IAR/ST_code/BSP/STM32H745I-Discovery/stm32h745i_discovery_ts.h
Add M7/M4 AMP demo.
[freertos] / FreeRTOS / Demo / CORTEX_M7_M4_AMP_STM32H745I_Discovery_IAR / ST_code / BSP / STM32H745I-Discovery / stm32h745i_discovery_ts.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32h745i_discovery_ts.h\r
4   * @author  MCD Application Team\r
5   * @brief   This file contains the common defines and functions prototypes for\r
6   *          the stm32h745i_discovery_ts.c driver.\r
7   ******************************************************************************\r
8   * @attention\r
9   *\r
10   * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.\r
11   * All rights reserved.</center></h2>\r
12   *\r
13   * This software component is licensed by ST under BSD 3-Clause license,\r
14   * the "License"; You may not use this file except in compliance with the\r
15   * License. You may obtain a copy of the License at:\r
16   *                        opensource.org/licenses/BSD-3-Clause\r
17   *\r
18   ******************************************************************************\r
19   */\r
20 \r
21 /* Define to prevent recursive inclusion -------------------------------------*/\r
22 #ifndef __STM32H745I_DISCOVERY_TS_H\r
23 #define __STM32H745I_DISCOVERY_TS_H\r
24 \r
25 #ifdef __cplusplus\r
26  extern "C" {\r
27 #endif   \r
28    \r
29 /* Includes ------------------------------------------------------------------*/\r
30 #include "stm32h745i_discovery.h"\r
31 /* Include touch screen FT5336 component Driver */\r
32 #include "../Components/ft5336/ft5336.h"\r
33    \r
34 /** @addtogroup BSP\r
35   * @{\r
36   */ \r
37 \r
38 /** @addtogroup STM32H745I_DISCOVERY\r
39   * @{\r
40   */\r
41     \r
42 /** @addtogroup STM32H745I_DISCOVERY_TS\r
43   * @{\r
44   */\r
45 \r
46  /** @defgroup STM32H745I_DISCOVERY_TS_Exported_Constants Exported Constants\r
47    * @{\r
48    */\r
49 \r
50 /** @brief With FT5336 : maximum 5 touches detected simultaneously\r
51   */\r
52 #define TS_MAX_NB_TOUCH                 ((uint32_t) FT5336_MAX_DETECTABLE_TOUCH)\r
53 \r
54 #define TS_NO_IRQ_PENDING               ((uint8_t) 0)\r
55 #define TS_IRQ_PENDING                  ((uint8_t) 1)\r
56 \r
57 #define TS_SWAP_NONE                    ((uint8_t) 0x01)\r
58 #define TS_SWAP_X                       ((uint8_t) 0x02)\r
59 #define TS_SWAP_Y                       ((uint8_t) 0x04)\r
60 #define TS_SWAP_XY                      ((uint8_t) 0x08)\r
61 \r
62 /**\r
63   * @}\r
64   */\r
65 \r
66 /** @defgroup STM32H745I_DISCOVERY_TS_Exported_Types  Exported Types\r
67   * @{\r
68   */\r
69 /**\r
70 *  @brief TS_StateTypeDef\r
71 *  Define TS State structure\r
72 */\r
73 typedef struct\r
74 {\r
75   uint8_t  touchDetected;                /*!< Total number of active touches detected at last scan */\r
76   uint16_t touchX[TS_MAX_NB_TOUCH];      /*!< Touch X[0], X[1] coordinates on 12 bits */\r
77   uint16_t touchY[TS_MAX_NB_TOUCH];      /*!< Touch Y[0], Y[1] coordinates on 12 bits */\r
78 \r
79 #if (TS_MULTI_TOUCH_SUPPORTED == 1)\r
80   uint8_t  touchWeight[TS_MAX_NB_TOUCH]; /*!< Touch_Weight[0], Touch_Weight[1] : weight property of touches */\r
81   uint8_t  touchEventId[TS_MAX_NB_TOUCH];     /*!< Touch_EventId[0], Touch_EventId[1] : take value of type @ref TS_TouchEventTypeDef */\r
82   uint8_t  touchArea[TS_MAX_NB_TOUCH];   /*!< Touch_Area[0], Touch_Area[1] : touch area of each touch */\r
83   uint32_t gestureId; /*!< type of gesture detected : take value of type @ref TS_GestureIdTypeDef */\r
84 #endif  /* TS_MULTI_TOUCH_SUPPORTED == 1 */\r
85 \r
86 } TS_StateTypeDef;\r
87 \r
88 /**\r
89   * @}\r
90   */ \r
91 \r
92 /** @defgroup STM32H745I_DISCOVERY_TS_Exported_Constants Exported Constants\r
93   * @{\r
94   */\r
95 \r
96 typedef enum \r
97 {\r
98   TS_OK                = 0x00, /*!< Touch Ok */\r
99   TS_ERROR             = 0x01, /*!< Touch Error */\r
100   TS_TIMEOUT           = 0x02, /*!< Touch Timeout */\r
101   TS_DEVICE_NOT_FOUND  = 0x03  /*!< Touchscreen device not found */\r
102 }TS_StatusTypeDef;\r
103 \r
104 /**\r
105  *  @brief TS_GestureIdTypeDef\r
106  *  Define Possible managed gesture identification values returned by touch screen\r
107  *  driver.\r
108  */\r
109 typedef enum\r
110 {\r
111   GEST_ID_NO_GESTURE = 0x00, /*!< Gesture not defined / recognized */\r
112   GEST_ID_MOVE_UP    = 0x01, /*!< Gesture Move Up */\r
113   GEST_ID_MOVE_RIGHT = 0x02, /*!< Gesture Move Right */\r
114   GEST_ID_MOVE_DOWN  = 0x03, /*!< Gesture Move Down */\r
115   GEST_ID_MOVE_LEFT  = 0x04, /*!< Gesture Move Left */\r
116   GEST_ID_ZOOM_IN    = 0x05, /*!< Gesture Zoom In */\r
117   GEST_ID_ZOOM_OUT   = 0x06, /*!< Gesture Zoom Out */\r
118   GEST_ID_NB_MAX     = 0x07  /*!< max number of gesture id */\r
119 \r
120 } TS_GestureIdTypeDef;\r
121 \r
122 /**\r
123  *  @brief TS_TouchEventTypeDef\r
124  *  Define Possible touch events kind as returned values\r
125  *  by touch screen IC Driver.\r
126  */\r
127 typedef enum\r
128 {\r
129   TOUCH_EVENT_NO_EVT        = 0x00, /*!< Touch Event : undetermined */\r
130   TOUCH_EVENT_PRESS_DOWN    = 0x01, /*!< Touch Event Press Down */\r
131   TOUCH_EVENT_LIFT_UP       = 0x02, /*!< Touch Event Lift Up */\r
132   TOUCH_EVENT_CONTACT       = 0x03, /*!< Touch Event Contact */\r
133   TOUCH_EVENT_NB_MAX        = 0x04  /*!< max number of touch events kind */\r
134 \r
135 } TS_TouchEventTypeDef;\r
136 /**\r
137   * @}\r
138   */ \r
139 \r
140 /** @defgroup STM32H745I_DISCOVERY_TS_Imported_Variables Imported Variables\r
141   * @{\r
142   */ \r
143 /**\r
144  *  @brief Table for touchscreen event information display on LCD :\r
145  *  table indexed on enum @ref TS_TouchEventTypeDef information\r
146  */\r
147 extern char * ts_event_string_tab[TOUCH_EVENT_NB_MAX];\r
148 \r
149 /**\r
150  *  @brief Table for touchscreen gesture Id information display on LCD : table indexed\r
151  *  on enum @ref TS_GestureIdTypeDef information\r
152  */\r
153 extern char * ts_gesture_id_string_tab[GEST_ID_NB_MAX];\r
154 /**\r
155   * @}\r
156   */ \r
157 \r
158 /** @addtogroup STM32H745I_DISCOVERY_TS_Exported_Functions\r
159   * @{\r
160   */\r
161 uint8_t BSP_TS_Init(uint16_t ts_SizeX, uint16_t ts_SizeY);\r
162 uint8_t BSP_TS_DeInit(void);\r
163 uint8_t BSP_TS_GetState(TS_StateTypeDef *TS_State);\r
164 \r
165 #if (TS_MULTI_TOUCH_SUPPORTED == 1)\r
166 uint8_t BSP_TS_Get_GestureId(TS_StateTypeDef *TS_State);\r
167 #endif /* TS_MULTI_TOUCH_SUPPORTED == 1 */\r
168 \r
169 uint8_t BSP_TS_ITConfig(void);\r
170 uint8_t BSP_TS_ITGetStatus(void);\r
171 void    BSP_TS_ITClear(void);\r
172 uint8_t BSP_TS_ResetTouchData(TS_StateTypeDef *TS_State);\r
173 /**\r
174   * @}\r
175   */ \r
176 \r
177 /**\r
178   * @}\r
179   */\r
180 \r
181 /**\r
182   * @}\r
183   */ \r
184 \r
185 /**\r
186   * @}\r
187   */\r
188 \r
189 \r
190 #ifdef __cplusplus\r
191 }\r
192 #endif\r
193 \r
194 #endif /* __STM32H745I_DISCOVERY_TS_H */\r
195 \r
196 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r