only for STM32F769NI-DISCOVERY

Committer:
kenjiArai
Date:
Wed Aug 07 05:36:32 2019 +0000
Revision:
0:f5e771f1c28f
only for STM32F769NI-DISCOVERY

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:f5e771f1c28f 1 /* Copyright (c) 2010-2011 mbed.org, MIT License
kenjiArai 0:f5e771f1c28f 2 *
kenjiArai 0:f5e771f1c28f 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
kenjiArai 0:f5e771f1c28f 4 * and associated documentation files (the "Software"), to deal in the Software without
kenjiArai 0:f5e771f1c28f 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
kenjiArai 0:f5e771f1c28f 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
kenjiArai 0:f5e771f1c28f 7 * Software is furnished to do so, subject to the following conditions:
kenjiArai 0:f5e771f1c28f 8 *
kenjiArai 0:f5e771f1c28f 9 * The above copyright notice and this permission notice shall be included in all copies or
kenjiArai 0:f5e771f1c28f 10 * substantial portions of the Software.
kenjiArai 0:f5e771f1c28f 11 *
kenjiArai 0:f5e771f1c28f 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
kenjiArai 0:f5e771f1c28f 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
kenjiArai 0:f5e771f1c28f 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 0:f5e771f1c28f 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 0:f5e771f1c28f 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 0:f5e771f1c28f 17 */
kenjiArai 0:f5e771f1c28f 18
kenjiArai 0:f5e771f1c28f 19 #ifndef __TS_DISCO_F769NI_H
kenjiArai 0:f5e771f1c28f 20 #define __TS_DISCO_F769NI_H
kenjiArai 0:f5e771f1c28f 21
kenjiArai 0:f5e771f1c28f 22 #ifdef TARGET_DISCO_F769NI
kenjiArai 0:f5e771f1c28f 23
kenjiArai 0:f5e771f1c28f 24 #include "mbed.h"
kenjiArai 0:f5e771f1c28f 25 #include "stm32f769i_discovery_ts.h"
kenjiArai 0:f5e771f1c28f 26
kenjiArai 0:f5e771f1c28f 27 /*
kenjiArai 0:f5e771f1c28f 28 This class drives the touch screen module ( device) of the LCD display
kenjiArai 0:f5e771f1c28f 29 present on DISCO_F769NI board.
kenjiArai 0:f5e771f1c28f 30
kenjiArai 0:f5e771f1c28f 31 Usage:
kenjiArai 0:f5e771f1c28f 32
kenjiArai 0:f5e771f1c28f 33 #include "mbed.h"
kenjiArai 0:f5e771f1c28f 34 #include "TS_DISCO_F769NI.h"
kenjiArai 0:f5e771f1c28f 35
kenjiArai 0:f5e771f1c28f 36 TS_DISCO_F769NI ts;
kenjiArai 0:f5e771f1c28f 37
kenjiArai 0:f5e771f1c28f 38 DigitalOut led1(LED1);
kenjiArai 0:f5e771f1c28f 39
kenjiArai 0:f5e771f1c28f 40 int main()
kenjiArai 0:f5e771f1c28f 41 {
kenjiArai 0:f5e771f1c28f 42 TS_StateTypeDef TS_State;
kenjiArai 0:f5e771f1c28f 43
kenjiArai 0:f5e771f1c28f 44 ts.Init(420, 272);
kenjiArai 0:f5e771f1c28f 45
kenjiArai 0:f5e771f1c28f 46 while(1)
kenjiArai 0:f5e771f1c28f 47 {
kenjiArai 0:f5e771f1c28f 48 ts.GetState(&TS_State);
kenjiArai 0:f5e771f1c28f 49 if ((TS_State.touchDetected) && (TS_State.touchX[0] > 240))
kenjiArai 0:f5e771f1c28f 50 {
kenjiArai 0:f5e771f1c28f 51 led1 = 1;
kenjiArai 0:f5e771f1c28f 52 }
kenjiArai 0:f5e771f1c28f 53 else
kenjiArai 0:f5e771f1c28f 54 {
kenjiArai 0:f5e771f1c28f 55 led1 = 0;
kenjiArai 0:f5e771f1c28f 56 }
kenjiArai 0:f5e771f1c28f 57 }
kenjiArai 0:f5e771f1c28f 58 }
kenjiArai 0:f5e771f1c28f 59 */
kenjiArai 0:f5e771f1c28f 60 class TS_DISCO_F769NI
kenjiArai 0:f5e771f1c28f 61 {
kenjiArai 0:f5e771f1c28f 62
kenjiArai 0:f5e771f1c28f 63 public:
kenjiArai 0:f5e771f1c28f 64 //! Constructor
kenjiArai 0:f5e771f1c28f 65 TS_DISCO_F769NI();
kenjiArai 0:f5e771f1c28f 66
kenjiArai 0:f5e771f1c28f 67 //! Destructor
kenjiArai 0:f5e771f1c28f 68 ~TS_DISCO_F769NI();
kenjiArai 0:f5e771f1c28f 69
kenjiArai 0:f5e771f1c28f 70 /**
kenjiArai 0:f5e771f1c28f 71 * @brief Initializes and configures the touch screen functionalities and
kenjiArai 0:f5e771f1c28f 72 * configures all necessary hardware resources (GPIOs, I2C, clocks..);.
kenjiArai 0:f5e771f1c28f 73 * @param ts_SizeX : Maximum X size of the TS area on LCD
kenjiArai 0:f5e771f1c28f 74 * @param ts_SizeY : Maximum Y size of the TS area on LCD
kenjiArai 0:f5e771f1c28f 75 * @retval TS_OK if all initializations are OK. Other value if error.
kenjiArai 0:f5e771f1c28f 76 */
kenjiArai 0:f5e771f1c28f 77 uint8_t Init(uint16_t ts_SizeX, uint16_t ts_SizeY);
kenjiArai 0:f5e771f1c28f 78
kenjiArai 0:f5e771f1c28f 79 /**
kenjiArai 0:f5e771f1c28f 80 * @brief Configures and enables the touch screen interrupts both at GPIO level and
kenjiArai 0:f5e771f1c28f 81 * in TouchScreen IC driver configuration.
kenjiArai 0:f5e771f1c28f 82 * @retval TS_OK if all initializations are OK.
kenjiArai 0:f5e771f1c28f 83 */
kenjiArai 0:f5e771f1c28f 84 uint8_t ITConfig(void);
kenjiArai 0:f5e771f1c28f 85
kenjiArai 0:f5e771f1c28f 86 /**
kenjiArai 0:f5e771f1c28f 87 * @brief Returns status and positions of the touch screen.
kenjiArai 0:f5e771f1c28f 88 * @param TS_State: Pointer to touch screen current state structure
kenjiArai 0:f5e771f1c28f 89 * @retval TS_OK if all initializations are OK. Other value if error.
kenjiArai 0:f5e771f1c28f 90 */
kenjiArai 0:f5e771f1c28f 91 uint8_t GetState(TS_StateTypeDef *TS_State);
kenjiArai 0:f5e771f1c28f 92
kenjiArai 0:f5e771f1c28f 93 #if (TS_MULTI_TOUCH_SUPPORTED == 1)
kenjiArai 0:f5e771f1c28f 94
kenjiArai 0:f5e771f1c28f 95 /**
kenjiArai 0:f5e771f1c28f 96 * @brief Update gesture Id following a touch detected.
kenjiArai 0:f5e771f1c28f 97 * @param TS_State: Pointer to touch screen current state structure
kenjiArai 0:f5e771f1c28f 98 * @retval TS_OK if all initializations are OK. Other value if error.
kenjiArai 0:f5e771f1c28f 99 */
kenjiArai 0:f5e771f1c28f 100 uint8_t Get_GestureId(TS_StateTypeDef *TS_State);
kenjiArai 0:f5e771f1c28f 101
kenjiArai 0:f5e771f1c28f 102 /**
kenjiArai 0:f5e771f1c28f 103 * @brief Function used to reset all touch data before a new acquisition
kenjiArai 0:f5e771f1c28f 104 * of touch information.
kenjiArai 0:f5e771f1c28f 105 * @param TS_State: Pointer to touch screen current state structure
kenjiArai 0:f5e771f1c28f 106 * @retval TS_OK if OK, TE_ERROR if problem found.
kenjiArai 0:f5e771f1c28f 107 */
kenjiArai 0:f5e771f1c28f 108 uint8_t ResetTouchData(TS_StateTypeDef *TS_State);
kenjiArai 0:f5e771f1c28f 109
kenjiArai 0:f5e771f1c28f 110 #endif // (TS_MULTI_TOUCH_SUPPORTED == 1)
kenjiArai 0:f5e771f1c28f 111
kenjiArai 0:f5e771f1c28f 112 private:
kenjiArai 0:f5e771f1c28f 113
kenjiArai 0:f5e771f1c28f 114 };
kenjiArai 0:f5e771f1c28f 115
kenjiArai 0:f5e771f1c28f 116 #else
kenjiArai 0:f5e771f1c28f 117 #error "This class must be used with DISCO_F769NI board only."
kenjiArai 0:f5e771f1c28f 118 #endif // TARGET_DISCO_F769NI
kenjiArai 0:f5e771f1c28f 119
kenjiArai 0:f5e771f1c28f 120 #endif