Initial commit
This commit is contained in:
		
							
								
								
									
										215
									
								
								ide-touchgfx-gen/Drivers/Components/ft5336/Release_Notes.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										215
									
								
								ide-touchgfx-gen/Drivers/Components/ft5336/Release_Notes.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,215 @@ | ||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | ||||
| <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|    | ||||
|   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | ||||
|  | ||||
|    | ||||
|   <link rel="File-List" href="Library_files/filelist.xml"> | ||||
|  | ||||
|    | ||||
|   <link rel="Edit-Time-Data" href="Library_files/editdata.mso"><!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><title>Release Notes for FT5336GQQ Component Driver</title><!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Author>STMicroelectronics</o:Author> <o:LastAuthor>STMicroelectronics</o:LastAuthor> <o:Revision>37</o:Revision> <o:TotalTime>136</o:TotalTime> <o:Created>2009-02-27T19:26:00Z</o:Created> <o:LastSaved>2009-03-01T17:56:00Z</o:LastSaved> <o:Pages>1</o:Pages> <o:Words>522</o:Words> <o:Characters>2977</o:Characters> <o:Company>STMicroelectronics</o:Company> <o:Lines>24</o:Lines> <o:Paragraphs>6</o:Paragraphs> <o:CharactersWithSpaces>3493</o:CharactersWithSpaces> <o:Version>11.6568</o:Version> </o:DocumentProperties> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:Zoom>110</w:Zoom> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> | ||||
|  | ||||
|  | ||||
|    | ||||
|  | ||||
|    | ||||
|  | ||||
|    | ||||
|   <style> | ||||
| <!-- | ||||
| /* Style Definitions */ | ||||
| p.MsoNormal, li.MsoNormal, div.MsoNormal | ||||
| {mso-style-parent:""; | ||||
| margin:0in; | ||||
| margin-bottom:.0001pt; | ||||
| mso-pagination:widow-orphan; | ||||
| font-size:12.0pt; | ||||
| font-family:"Times New Roman"; | ||||
| mso-fareast-font-family:"Times New Roman";} | ||||
| h2 | ||||
| {mso-style-next:Normal; | ||||
| margin-top:12.0pt; | ||||
| margin-right:0in; | ||||
| margin-bottom:3.0pt; | ||||
| margin-left:0in; | ||||
| mso-pagination:widow-orphan; | ||||
| page-break-after:avoid; | ||||
| mso-outline-level:2; | ||||
| font-size:14.0pt; | ||||
| font-family:Arial; | ||||
| font-weight:bold; | ||||
| font-style:italic;} | ||||
| a:link, span.MsoHyperlink | ||||
| {color:blue; | ||||
| text-decoration:underline; | ||||
| text-underline:single;} | ||||
| a:visited, span.MsoHyperlinkFollowed | ||||
| {color:blue; | ||||
| text-decoration:underline; | ||||
| text-underline:single;} | ||||
| p | ||||
| {mso-margin-top-alt:auto; | ||||
| margin-right:0in; | ||||
| mso-margin-bottom-alt:auto; | ||||
| margin-left:0in; | ||||
| mso-pagination:widow-orphan; | ||||
| font-size:12.0pt; | ||||
| font-family:"Times New Roman"; | ||||
| mso-fareast-font-family:"Times New Roman";} | ||||
| @page Section1 | ||||
| {size:8.5in 11.0in; | ||||
| margin:1.0in 1.25in 1.0in 1.25in; | ||||
| mso-header-margin:.5in; | ||||
| mso-footer-margin:.5in; | ||||
| mso-paper-source:0;} | ||||
| div.Section1 | ||||
| {page:Section1;} | ||||
| --> | ||||
|   </style><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0in 5.4pt 0in 5.4pt; mso-para-margin:0in; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]--><!--[if gte mso 9]><xml> <o:shapedefaults v:ext="edit" spidmax="5122"/> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext="edit"> <o:idmap v:ext="edit" data="1"/> </o:shapelayout></xml><![endif]--> | ||||
|   <meta content="MCD Application Team" name="author"></head> | ||||
| <body link="blue" vlink="blue"> | ||||
| <div class="Section1"> | ||||
| <p class="MsoNormal"><span style="font-family: Arial;"><o:p><br> | ||||
| </o:p></span></p> | ||||
| <div align="center"> | ||||
| <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" cellspacing="0" width="900"> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <td style="padding: 0cm;" valign="top"> | ||||
|       <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" cellspacing="0" width="900"> | ||||
|         <tbody> | ||||
|           <tr> | ||||
|             <td style="vertical-align: top;"> | ||||
|             <p class="MsoNormal"><span style="font-size: 8pt; font-family: Arial; color: blue;"><a href="../../../../Release_Notes.html">Back to Release page</a><o:p></o:p></span></p> | ||||
|             </td> | ||||
|           </tr> | ||||
|           <tr style=""> | ||||
|             <td style="padding: 1.5pt;"> | ||||
|             <h1 style="margin-bottom: 18pt; text-align: center;" align="center"><span style="font-size: 20pt; font-family: Verdana; color: rgb(51, 102, 255);">Release | ||||
| Notes for FT5336GQQ Component Driver</span><span style="font-size: 20pt; font-family: Verdana;"><o:p></o:p></span></h1> | ||||
|             <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt; font-family: Arial; color: black;">Copyright | ||||
| 2015 STMicroelectronics</span><span style="color: black;"><u1:p></u1:p><o:p></o:p></span></p> | ||||
|             <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10pt; font-family: Arial; color: black;"><img alt="" id="_x0000_i1025" src="../../../../_htmresc/st_logo.png" style="border: 0px solid ; width: 86px; height: 65px;"></span><span style="font-size: 10pt;"><o:p></o:p></span></p> | ||||
|             </td> | ||||
|           </tr> | ||||
|         </tbody> | ||||
|       </table> | ||||
|       <p class="MsoNormal"><span style="font-family: Arial; display: none;"><o:p> </o:p></span></p> | ||||
|       <table class="MsoNormalTable" style="width: 675pt;" border="0" cellpadding="0" width="900"> | ||||
|         <tbody> | ||||
|           <tr style=""> | ||||
|             <td style="padding: 0cm;" valign="top"> | ||||
|             <span style="font-family: "Times New Roman";"> | ||||
|             </span> | ||||
|             <h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;"><a name="History"></a><span style="font-size: 12pt; color: white;">Update History</span></h2><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"></span><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; width: 180px; margin-right: 500pt;"><span style="color: white; font-family: Arial; font-size: 10pt;">V1.0.1 / 07-April-2017 <o:p></o:p></span></h3><p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b><u><span style="color: black; font-family: Verdana; font-size: 10pt;">Main Changes<o:p></o:p></span></u></b></p><span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span><span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>             <span style="font-family: Verdana; font-size: 10pt;"></span>                         <ul style="list-style-type: square;"><li><span style="font-family: Verdana; font-size: 10pt;"></span><span style="font-family: Verdana;"></span><span style="font-family: Verdana; font-size: 10pt;">Update comments to be used for PDSC generation</span></li></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 180px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.0.0 / 25-June-2015 <o:p></o:p></span></h3> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|              | ||||
|              | ||||
|              | ||||
|             <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main | ||||
| Changes<o:p></o:p></span></u></b></p> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|             <span style="font-size: 10pt; font-family: Verdana;"></span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             <span style="font-size: 10pt; font-family: Verdana;"></span> | ||||
|  | ||||
|  | ||||
|              | ||||
|             <span style="font-size: 10pt; font-family: Verdana;"></span><span style="font-size: 10pt; font-family: Verdana;"></span> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|              | ||||
|              | ||||
|             <span style="font-size: 10pt; font-family: Verdana;"></span> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|              | ||||
|              | ||||
|             <span style="font-size: 10pt; font-family: Verdana;"></span> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|              | ||||
|              | ||||
|             <span style="font-size: 10pt; font-family: Verdana;"></span> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|              | ||||
|              | ||||
|             <ul style="list-style-type: square;"> | ||||
| <li><span style="font-size: 10pt; font-family: Verdana;">First official release of FT5336 TS driver </span><span style="font-size: 10pt; font-family: Verdana;"></span></li> | ||||
|             </ul><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"><span style="font-style: italic; font-weight: bold;"></span></span><span style="font-size: 10pt; font-family: Verdana;"></span><h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;"><a name="License"></a><span style="font-size: 12pt; color: white;">License<o:p></o:p></span><br></h2> | ||||
|             <div style="text-align: justify;"><font size="-1"><span style="font-family: "Verdana","sans-serif";"> | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are | ||||
| met:</span><br> | ||||
|             </font> | ||||
|             <ol><li><font size="-1"><span style="font-family: "Verdana","sans-serif";">Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</span><span style="font-family: "Verdana","sans-serif";"></span></font></li><li><font size="-1"><span style="font-family: "Verdana","sans-serif";">Redistributions | ||||
| in binary form must reproduce the above copyright notice, this list of | ||||
| conditions and the following disclaimer in </span><span style="font-family: "Verdana","sans-serif";">the documentation and/or other materials provided with the distribution.</span><span style="font-family: "Verdana","sans-serif";"></span></font></li><li><font size="-1"><span style="font-family: "Verdana","sans-serif";">Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived </span><br> | ||||
|                 </font> | ||||
|               </li></ol> | ||||
|             <font size="-1"><span style="font-family: "Verdana","sans-serif";">       from this software without specific prior written permission.</span><br> | ||||
|             <span style="font-family: "Verdana","sans-serif";"></span><br> | ||||
|             <span style="font-family: "Verdana","sans-serif";">THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED</span><span style="font-family: "Verdana","sans-serif";"> WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A </span><span style="font-family: "Verdana","sans-serif";">PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY </span><span style="font-family: "Verdana","sans-serif";">DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, </span><span style="font-family: "Verdana","sans-serif";">PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER</span><span style="font-family: "Verdana","sans-serif";"> CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR </span><span style="font-family: "Verdana","sans-serif";">OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></font> | ||||
|              | ||||
|             </div> | ||||
| <p class="MsoNormal"><span style="font-size: 10pt; font-family: "Verdana","sans-serif"; color: black;"><font size="-1"></font><o:p></o:p></span></p> | ||||
| <b><span style="font-size: 10pt; font-family: Verdana; color: black;"></span></b> | ||||
|              | ||||
|             <div class="MsoNormal" style="text-align: center;" align="center"><span style="color: black;"> | ||||
|             <hr align="center" size="2" width="100%"></span></div> | ||||
|             <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt; text-align: center;" align="center"><span style="font-size: 10pt; font-family: Verdana; color: black;">For | ||||
| complete documentation on </span><span style="font-size: 10pt; font-family: Verdana;">STM32<span style="color: black;"> Microcontrollers | ||||
| visit </span><u><span style="color: blue;"><a href="http://www.st.com/internet/mcu/class/1734.jsp" target="_blank">www.st.com/STM32</a></span></u></span><span style="font-size: 10pt; font-family: Verdana;"><a target="_blank" href="http://www.st.com/internet/mcu/family/141.jsp"><u><span style="color: blue;"></span></u></a></span><span style="font-size: 10pt; font-family: Verdana;"><u><span style="color: blue;"></span></u></span><span style="color: black;"><o:p></o:p></span></p> | ||||
|             </td> | ||||
|           </tr> | ||||
|         </tbody> | ||||
|       </table> | ||||
|       <p class="MsoNormal"><span style="font-size: 10pt;"><o:p></o:p></span></p> | ||||
|       </td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| </div> | ||||
| <p class="MsoNormal"><o:p> </o:p></p> | ||||
| </div> | ||||
|  | ||||
| </body></html> | ||||
							
								
								
									
										623
									
								
								ide-touchgfx-gen/Drivers/Components/ft5336/ft5336.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										623
									
								
								ide-touchgfx-gen/Drivers/Components/ft5336/ft5336.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,623 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    ft5336.c | ||||
|   * @author  MCD Application Team | ||||
|   * @brief   This file provides a set of functions needed to manage the FT5336 | ||||
|   *          touch screen devices. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> | ||||
|   * | ||||
|   * Redistribution and use in source and binary forms, with or without modification, | ||||
|   * are permitted provided that the following conditions are met: | ||||
|   *   1. Redistributions of source code must retain the above copyright notice, | ||||
|   *      this list of conditions and the following disclaimer. | ||||
|   *   2. Redistributions in binary form must reproduce the above copyright notice, | ||||
|   *      this list of conditions and the following disclaimer in the documentation | ||||
|   *      and/or other materials provided with the distribution. | ||||
|   *   3. Neither the name of STMicroelectronics nor the names of its contributors | ||||
|   *      may be used to endorse or promote products derived from this software | ||||
|   *      without specific prior written permission. | ||||
|   * | ||||
|   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
|   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||
|   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||
|   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||
|   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||
|   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
|   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "ft5336.h" | ||||
|  | ||||
| /** @addtogroup BSP | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @addtogroup Component | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @defgroup FT5336 | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Private typedef -----------------------------------------------------------*/ | ||||
|  | ||||
| /** @defgroup FT5336_Private_Types_Definitions | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Private define ------------------------------------------------------------*/ | ||||
|  | ||||
| /** @defgroup FT5336_Private_Defines | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Private macro -------------------------------------------------------------*/ | ||||
|  | ||||
| /** @defgroup FT5336_Private_Macros | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Private variables ---------------------------------------------------------*/ | ||||
|  | ||||
| /** @defgroup FT5336_Private_Variables | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Touch screen driver structure initialization */ | ||||
| TS_DrvTypeDef ft5336_ts_drv = | ||||
| { | ||||
|   ft5336_Init, | ||||
|   ft5336_ReadID, | ||||
|   ft5336_Reset, | ||||
|  | ||||
|   ft5336_TS_Start, | ||||
|   ft5336_TS_DetectTouch, | ||||
|   ft5336_TS_GetXY, | ||||
|  | ||||
|   ft5336_TS_EnableIT, | ||||
|   ft5336_TS_ClearIT, | ||||
|   ft5336_TS_ITStatus, | ||||
|   ft5336_TS_DisableIT | ||||
|  | ||||
| }; | ||||
|  | ||||
| /* Global ft5336 handle */ | ||||
| static ft5336_handle_TypeDef ft5336_handle = { FT5336_I2C_NOT_INITIALIZED, 0, 0}; | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** @defgroup ft5336_Private_Function_Prototypes | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Private functions prototypes-----------------------------------------------*/ | ||||
|  | ||||
| /** | ||||
|   * @brief  Return the status of I2C was initialized or not. | ||||
|   * @param  None. | ||||
|   * @retval : I2C initialization status. | ||||
|   */ | ||||
| static uint8_t ft5336_Get_I2C_InitializedStatus(void); | ||||
|  | ||||
| /** | ||||
|   * @brief  I2C initialize if needed. | ||||
|   * @param  None. | ||||
|   * @retval : None. | ||||
|   */ | ||||
| static void ft5336_I2C_InitializeIfRequired(void); | ||||
|  | ||||
| /** | ||||
|   * @brief  Basic static configuration of TouchScreen | ||||
|   * @param  DeviceAddr: FT5336 Device address for communication on I2C Bus. | ||||
|   * @retval Status FT5336_STATUS_OK or FT5336_STATUS_NOT_OK. | ||||
|   */ | ||||
| static uint32_t ft5336_TS_Configure(uint16_t DeviceAddr); | ||||
|  | ||||
| /** @defgroup ft5336_Private_Functions | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /** @defgroup ft5336_Public_Function_Body | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Public functions bodies-----------------------------------------------*/ | ||||
|  | ||||
|  | ||||
| /** | ||||
|   * @brief  Initialize the ft5336 communication bus | ||||
|   *         from MCU to FT5336 : ie I2C channel initialization (if required). | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|   * @retval None | ||||
|   */ | ||||
| void ft5336_Init(uint16_t DeviceAddr) | ||||
| { | ||||
|   /* Wait at least 200ms after power up before accessing registers | ||||
|    * Trsi timing (Time of starting to report point after resetting) from FT5336GQQ datasheet */ | ||||
|   //TS_IO_Delay(200); | ||||
|  | ||||
|   /* Initialize I2C link if needed */ | ||||
|   ft5336_I2C_InitializeIfRequired(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Software Reset the ft5336. | ||||
|   *         @note : Not applicable to FT5336. | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|   * @retval None | ||||
|   */ | ||||
| void ft5336_Reset(uint16_t DeviceAddr) | ||||
| { | ||||
|   /* Do nothing */ | ||||
|   /* No software reset sequence available in FT5336 IC */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Read the ft5336 device ID, pre initialize I2C in case of need to be | ||||
|   *         able to read the FT5336 device ID, and verify this is a FT5336. | ||||
|   * @param  DeviceAddr: I2C FT5336 Slave address. | ||||
|   * @retval The Device ID (two bytes). | ||||
|   */ | ||||
| uint16_t ft5336_ReadID(uint16_t DeviceAddr) | ||||
| { | ||||
|   volatile uint8_t ucReadId = 0; | ||||
|   uint8_t nbReadAttempts = 0; | ||||
|   uint8_t bFoundDevice = 0; /* Device not found by default */ | ||||
|  | ||||
|   /* Initialize I2C link if needed */ | ||||
|   ft5336_I2C_InitializeIfRequired(); | ||||
|  | ||||
|   /* At maximum 4 attempts to read ID : exit at first finding of the searched device ID */ | ||||
|   for(nbReadAttempts = 0; ((nbReadAttempts < 3) && !(bFoundDevice)); nbReadAttempts++) | ||||
|   { | ||||
|     /* Read register FT5336_CHIP_ID_REG as DeviceID detection */ | ||||
|     ucReadId = TS_IO_Read(DeviceAddr, FT5336_CHIP_ID_REG); | ||||
|  | ||||
|     /* Found the searched device ID ? */ | ||||
|     if(ucReadId == FT5336_ID_VALUE) | ||||
|     { | ||||
|       /* Set device as found */ | ||||
|       bFoundDevice = 1; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   /* Return the device ID value */ | ||||
|   return (ucReadId); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Configures the touch Screen IC device to start detecting touches | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address). | ||||
|   * @retval None. | ||||
|   */ | ||||
| void ft5336_TS_Start(uint16_t DeviceAddr) | ||||
| { | ||||
|   /* Minimum static configuration of FT5336 */ | ||||
|   FT5336_ASSERT(ft5336_TS_Configure(DeviceAddr)); | ||||
|  | ||||
|   /* By default set FT5336 IC in Polling mode : no INT generation on FT5336 for new touch available */ | ||||
|   /* Note TS_INT is active low                                                                      */ | ||||
|   ft5336_TS_DisableIT(DeviceAddr); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Return if there is touches detected or not. | ||||
|   *         Try to detect new touches and forget the old ones (reset internal global | ||||
|   *         variables). | ||||
|   * @param  DeviceAddr: Device address on communication Bus. | ||||
|   * @retval : Number of active touches detected (can be 0, 1 or 2). | ||||
|   */ | ||||
| uint8_t ft5336_TS_DetectTouch(uint16_t DeviceAddr) | ||||
| { | ||||
|   volatile uint8_t nbTouch = 0; | ||||
|  | ||||
|   /* Read register FT5336_TD_STAT_REG to check number of touches detection */ | ||||
|   nbTouch = TS_IO_Read(DeviceAddr, FT5336_TD_STAT_REG); | ||||
|   nbTouch &= FT5336_TD_STAT_MASK; | ||||
|  | ||||
|   if(nbTouch > FT5336_MAX_DETECTABLE_TOUCH) | ||||
|   { | ||||
|     /* If invalid number of touch detected, set it to zero */ | ||||
|     nbTouch = 0; | ||||
|   } | ||||
|  | ||||
|   /* Update ft5336 driver internal global : current number of active touches */ | ||||
|   ft5336_handle.currActiveTouchNb = nbTouch; | ||||
|  | ||||
|   /* Reset current active touch index on which to work on */ | ||||
|   ft5336_handle.currActiveTouchIdx = 0; | ||||
|  | ||||
|   return(nbTouch); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Get the touch screen X and Y positions values | ||||
|   *         Manage multi touch thanks to touch Index global | ||||
|   *         variable 'ft5336_handle.currActiveTouchIdx'. | ||||
|   * @param  DeviceAddr: Device address on communication Bus. | ||||
|   * @param  X: Pointer to X position value | ||||
|   * @param  Y: Pointer to Y position value | ||||
|   * @retval None. | ||||
|   */ | ||||
| void ft5336_TS_GetXY(uint16_t DeviceAddr, uint16_t *X, uint16_t *Y) | ||||
| { | ||||
|   volatile uint8_t ucReadData = 0; | ||||
|   static uint16_t coord; | ||||
|   uint8_t regAddressXLow = 0; | ||||
|   uint8_t regAddressXHigh = 0; | ||||
|   uint8_t regAddressYLow = 0; | ||||
|   uint8_t regAddressYHigh = 0; | ||||
|  | ||||
|   if(ft5336_handle.currActiveTouchIdx < ft5336_handle.currActiveTouchNb) | ||||
|   { | ||||
|     switch(ft5336_handle.currActiveTouchIdx) | ||||
|     { | ||||
|     case 0 : | ||||
|       regAddressXLow  = FT5336_P1_XL_REG; | ||||
|       regAddressXHigh = FT5336_P1_XH_REG; | ||||
|       regAddressYLow  = FT5336_P1_YL_REG; | ||||
|       regAddressYHigh = FT5336_P1_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 1 : | ||||
|       regAddressXLow  = FT5336_P2_XL_REG; | ||||
|       regAddressXHigh = FT5336_P2_XH_REG; | ||||
|       regAddressYLow  = FT5336_P2_YL_REG; | ||||
|       regAddressYHigh = FT5336_P2_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 2 : | ||||
|       regAddressXLow  = FT5336_P3_XL_REG; | ||||
|       regAddressXHigh = FT5336_P3_XH_REG; | ||||
|       regAddressYLow  = FT5336_P3_YL_REG; | ||||
|       regAddressYHigh = FT5336_P3_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 3 : | ||||
|       regAddressXLow  = FT5336_P4_XL_REG; | ||||
|       regAddressXHigh = FT5336_P4_XH_REG; | ||||
|       regAddressYLow  = FT5336_P4_YL_REG; | ||||
|       regAddressYHigh = FT5336_P4_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 4 : | ||||
|       regAddressXLow  = FT5336_P5_XL_REG; | ||||
|       regAddressXHigh = FT5336_P5_XH_REG; | ||||
|       regAddressYLow  = FT5336_P5_YL_REG; | ||||
|       regAddressYHigh = FT5336_P5_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 5 : | ||||
|       regAddressXLow  = FT5336_P6_XL_REG; | ||||
|       regAddressXHigh = FT5336_P6_XH_REG; | ||||
|       regAddressYLow  = FT5336_P6_YL_REG; | ||||
|       regAddressYHigh = FT5336_P6_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 6 : | ||||
|       regAddressXLow  = FT5336_P7_XL_REG; | ||||
|       regAddressXHigh = FT5336_P7_XH_REG; | ||||
|       regAddressYLow  = FT5336_P7_YL_REG; | ||||
|       regAddressYHigh = FT5336_P7_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 7 : | ||||
|       regAddressXLow  = FT5336_P8_XL_REG; | ||||
|       regAddressXHigh = FT5336_P8_XH_REG; | ||||
|       regAddressYLow  = FT5336_P8_YL_REG; | ||||
|       regAddressYHigh = FT5336_P8_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 8 : | ||||
|       regAddressXLow  = FT5336_P9_XL_REG; | ||||
|       regAddressXHigh = FT5336_P9_XH_REG; | ||||
|       regAddressYLow  = FT5336_P9_YL_REG; | ||||
|       regAddressYHigh = FT5336_P9_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     case 9 : | ||||
|       regAddressXLow  = FT5336_P10_XL_REG; | ||||
|       regAddressXHigh = FT5336_P10_XH_REG; | ||||
|       regAddressYLow  = FT5336_P10_YL_REG; | ||||
|       regAddressYHigh = FT5336_P10_YH_REG; | ||||
|       break; | ||||
|  | ||||
|     default : | ||||
|       break; | ||||
|  | ||||
|     } /* end switch(ft5336_handle.currActiveTouchIdx) */ | ||||
|  | ||||
|     /* Read low part of X position */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressXLow); | ||||
|     coord = (ucReadData & FT5336_TOUCH_POS_LSB_MASK) >> FT5336_TOUCH_POS_LSB_SHIFT; | ||||
|  | ||||
|     /* Read high part of X position */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressXHigh); | ||||
|     coord |= ((ucReadData & FT5336_TOUCH_POS_MSB_MASK) >> FT5336_TOUCH_POS_MSB_SHIFT) << 8; | ||||
|  | ||||
|     /* Send back ready X position to caller */ | ||||
|     *X = coord; | ||||
|  | ||||
|     /* Read low part of Y position */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressYLow); | ||||
|     coord = (ucReadData & FT5336_TOUCH_POS_LSB_MASK) >> FT5336_TOUCH_POS_LSB_SHIFT; | ||||
|  | ||||
|     /* Read high part of Y position */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressYHigh); | ||||
|     coord |= ((ucReadData & FT5336_TOUCH_POS_MSB_MASK) >> FT5336_TOUCH_POS_MSB_SHIFT) << 8; | ||||
|  | ||||
|     /* Send back ready Y position to caller */ | ||||
|     *Y = coord; | ||||
|  | ||||
|     ft5336_handle.currActiveTouchIdx++; /* next call will work on next touch */ | ||||
|  | ||||
|   } /* of if(ft5336_handle.currActiveTouchIdx < ft5336_handle.currActiveTouchNb) */ | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Configure the FT5336 device to generate IT on given INT pin | ||||
|   *         connected to MCU as EXTI. | ||||
|   * @param  DeviceAddr: Device address on communication Bus (Slave I2C address of FT5336). | ||||
|   * @retval None | ||||
|   */ | ||||
| void ft5336_TS_EnableIT(uint16_t DeviceAddr) | ||||
| { | ||||
|    uint8_t regValue = 0; | ||||
|    regValue = (FT5336_G_MODE_INTERRUPT_TRIGGER & (FT5336_G_MODE_INTERRUPT_MASK >> FT5336_G_MODE_INTERRUPT_SHIFT)) << FT5336_G_MODE_INTERRUPT_SHIFT; | ||||
|  | ||||
|    /* Set interrupt trigger mode in FT5336_GMODE_REG */ | ||||
|    TS_IO_Write(DeviceAddr, FT5336_GMODE_REG, regValue); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Configure the FT5336 device to stop generating IT on the given INT pin | ||||
|   *         connected to MCU as EXTI. | ||||
|   * @param  DeviceAddr: Device address on communication Bus (Slave I2C address of FT5336). | ||||
|   * @retval None | ||||
|   */ | ||||
| void ft5336_TS_DisableIT(uint16_t DeviceAddr) | ||||
| { | ||||
|   uint8_t regValue = 0; | ||||
|   regValue = (FT5336_G_MODE_INTERRUPT_POLLING & (FT5336_G_MODE_INTERRUPT_MASK >> FT5336_G_MODE_INTERRUPT_SHIFT)) << FT5336_G_MODE_INTERRUPT_SHIFT; | ||||
|  | ||||
|   /* Set interrupt polling mode in FT5336_GMODE_REG */ | ||||
|   TS_IO_Write(DeviceAddr, FT5336_GMODE_REG, regValue); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Get IT status from FT5336 interrupt status registers | ||||
|   *         Should be called Following an EXTI coming to the MCU to know the detailed | ||||
|   *         reason of the interrupt. | ||||
|   *         @note : This feature is not applicable to FT5336. | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|   * @retval TS interrupts status : always return 0 here | ||||
|   */ | ||||
| uint8_t ft5336_TS_ITStatus(uint16_t DeviceAddr) | ||||
| { | ||||
|   /* Always return 0 as feature not applicable to FT5336 */ | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Clear IT status in FT5336 interrupt status clear registers | ||||
|   *         Should be called Following an EXTI coming to the MCU. | ||||
|   *         @note : This feature is not applicable to FT5336. | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|   * @retval None | ||||
|   */ | ||||
| void ft5336_TS_ClearIT(uint16_t DeviceAddr) | ||||
| { | ||||
|   /* Nothing to be done here for FT5336 */ | ||||
| } | ||||
|  | ||||
| /**** NEW FEATURES enabled when Multi-touch support is enabled ****/ | ||||
|  | ||||
| #if (TS_MULTI_TOUCH_SUPPORTED == 1) | ||||
|  | ||||
| /** | ||||
|   * @brief  Get the last touch gesture identification (zoom, move up/down...). | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|   * @param  pGestureId : Pointer to get last touch gesture Identification. | ||||
|   * @retval None. | ||||
|   */ | ||||
| void ft5336_TS_GetGestureID(uint16_t DeviceAddr, uint32_t * pGestureId) | ||||
| { | ||||
|   volatile uint8_t ucReadData = 0; | ||||
|  | ||||
|   ucReadData = TS_IO_Read(DeviceAddr, FT5336_GEST_ID_REG); | ||||
|  | ||||
|   * pGestureId = ucReadData; | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Get the touch detailed informations on touch number 'touchIdx' (0..1) | ||||
|   *         This touch detailed information contains : | ||||
|   *         - weight that was applied to this touch | ||||
|   *         - sub-area of the touch in the touch panel | ||||
|   *         - event of linked to the touch (press down, lift up, ...) | ||||
|   * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|   * @param  touchIdx : Passed index of the touch (0..1) on which we want to get the | ||||
|   *                    detailed information. | ||||
|   * @param  pWeight : Pointer to to get the weight information of 'touchIdx'. | ||||
|   * @param  pArea   : Pointer to to get the sub-area information of 'touchIdx'. | ||||
|   * @param  pEvent  : Pointer to to get the event information of 'touchIdx'. | ||||
|  | ||||
|   * @retval None. | ||||
|   */ | ||||
| void ft5336_TS_GetTouchInfo(uint16_t   DeviceAddr, | ||||
|                             uint32_t   touchIdx, | ||||
|                             uint32_t * pWeight, | ||||
|                             uint32_t * pArea, | ||||
|                             uint32_t * pEvent) | ||||
| { | ||||
|   volatile uint8_t ucReadData = 0; | ||||
|   uint8_t regAddressXHigh = 0; | ||||
|   uint8_t regAddressPWeight = 0; | ||||
|   uint8_t regAddressPMisc = 0; | ||||
|  | ||||
|   if(touchIdx < ft5336_handle.currActiveTouchNb) | ||||
|   { | ||||
|     switch(touchIdx) | ||||
|     { | ||||
|     case 0 : | ||||
|       regAddressXHigh   = FT5336_P1_XH_REG; | ||||
|       regAddressPWeight = FT5336_P1_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P1_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 1 : | ||||
|       regAddressXHigh   = FT5336_P2_XH_REG; | ||||
|       regAddressPWeight = FT5336_P2_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P2_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 2 : | ||||
|       regAddressXHigh   = FT5336_P3_XH_REG; | ||||
|       regAddressPWeight = FT5336_P3_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P3_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 3 : | ||||
|       regAddressXHigh   = FT5336_P4_XH_REG; | ||||
|       regAddressPWeight = FT5336_P4_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P4_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 4 : | ||||
|       regAddressXHigh   = FT5336_P5_XH_REG; | ||||
|       regAddressPWeight = FT5336_P5_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P5_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 5 : | ||||
|       regAddressXHigh   = FT5336_P6_XH_REG; | ||||
|       regAddressPWeight = FT5336_P6_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P6_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 6 : | ||||
|       regAddressXHigh   = FT5336_P7_XH_REG; | ||||
|       regAddressPWeight = FT5336_P7_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P7_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 7 : | ||||
|       regAddressXHigh   = FT5336_P8_XH_REG; | ||||
|       regAddressPWeight = FT5336_P8_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P8_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 8 : | ||||
|       regAddressXHigh   = FT5336_P9_XH_REG; | ||||
|       regAddressPWeight = FT5336_P9_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P9_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     case 9 : | ||||
|       regAddressXHigh   = FT5336_P10_XH_REG; | ||||
|       regAddressPWeight = FT5336_P10_WEIGHT_REG; | ||||
|       regAddressPMisc   = FT5336_P10_MISC_REG; | ||||
|       break; | ||||
|  | ||||
|     default : | ||||
|       break; | ||||
|  | ||||
|     } /* end switch(touchIdx) */ | ||||
|  | ||||
|     /* Read Event Id of touch index */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressXHigh); | ||||
|     * pEvent = (ucReadData & FT5336_TOUCH_EVT_FLAG_MASK) >> FT5336_TOUCH_EVT_FLAG_SHIFT; | ||||
|  | ||||
|     /* Read weight of touch index */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressPWeight); | ||||
|     * pWeight = (ucReadData & FT5336_TOUCH_WEIGHT_MASK) >> FT5336_TOUCH_WEIGHT_SHIFT; | ||||
|  | ||||
|     /* Read area of touch index */ | ||||
|     ucReadData = TS_IO_Read(DeviceAddr, regAddressPMisc); | ||||
|     * pArea = (ucReadData & FT5336_TOUCH_AREA_MASK) >> FT5336_TOUCH_AREA_SHIFT; | ||||
|  | ||||
|   } /* of if(touchIdx < ft5336_handle.currActiveTouchNb) */ | ||||
| } | ||||
|  | ||||
| #endif /* TS_MULTI_TOUCH_SUPPORTED == 1 */ | ||||
|  | ||||
| /** @defgroup ft5336_Static_Function_Body | ||||
|   * @{ | ||||
|   */ | ||||
|  | ||||
| /* Static functions bodies-----------------------------------------------*/ | ||||
|  | ||||
|  | ||||
| /** | ||||
|   * @brief  Return the status of I2C was initialized or not. | ||||
|   * @param  None. | ||||
|   * @retval : I2C initialization status. | ||||
|   */ | ||||
| static uint8_t ft5336_Get_I2C_InitializedStatus(void) | ||||
| { | ||||
|   return(ft5336_handle.i2cInitialized); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  I2C initialize if needed. | ||||
|   * @param  None. | ||||
|   * @retval : None. | ||||
|   */ | ||||
| static void ft5336_I2C_InitializeIfRequired(void) | ||||
| { | ||||
|   if(ft5336_Get_I2C_InitializedStatus() == FT5336_I2C_NOT_INITIALIZED) | ||||
|   { | ||||
|     /* Initialize TS IO BUS layer (I2C) */ | ||||
|     //TS_IO_Init(); | ||||
|  | ||||
|     /* Set state to initialized */ | ||||
|     ft5336_handle.i2cInitialized = FT5336_I2C_INITIALIZED; | ||||
|   } | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @brief  Basic static configuration of TouchScreen | ||||
|   * @param  DeviceAddr: FT5336 Device address for communication on I2C Bus. | ||||
|   * @retval Status FT5336_STATUS_OK or FT5336_STATUS_NOT_OK. | ||||
|   */ | ||||
| static uint32_t ft5336_TS_Configure(uint16_t DeviceAddr) | ||||
| { | ||||
|   uint32_t status = FT5336_STATUS_OK; | ||||
|  | ||||
|   /* Nothing special to be done for FT5336 */ | ||||
|  | ||||
|   return(status); | ||||
| } | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
|  | ||||
| /** | ||||
|   * @} | ||||
|   */ | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
							
								
								
									
										538
									
								
								ide-touchgfx-gen/Drivers/Components/ft5336/ft5336.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										538
									
								
								ide-touchgfx-gen/Drivers/Components/ft5336/ft5336.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,538 @@ | ||||
| /** | ||||
|   ****************************************************************************** | ||||
|   * @file    ft5336.h | ||||
|   * @author  MCD Application Team | ||||
|   * @brief   This file contains all the functions prototypes for the | ||||
|   *          ft5336.c Touch screen driver. | ||||
|   ****************************************************************************** | ||||
|   * @attention | ||||
|   * | ||||
|   * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> | ||||
|   * | ||||
|   * Redistribution and use in source and binary forms, with or without modification, | ||||
|   * are permitted provided that the following conditions are met: | ||||
|   *   1. Redistributions of source code must retain the above copyright notice, | ||||
|   *      this list of conditions and the following disclaimer. | ||||
|   *   2. Redistributions in binary form must reproduce the above copyright notice, | ||||
|   *      this list of conditions and the following disclaimer in the documentation | ||||
|   *      and/or other materials provided with the distribution. | ||||
|   *   3. Neither the name of STMicroelectronics nor the names of its contributors | ||||
|   *      may be used to endorse or promote products derived from this software | ||||
|   *      without specific prior written permission. | ||||
|   * | ||||
|   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | ||||
|   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
|   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
|   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | ||||
|   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
|   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR | ||||
|   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER | ||||
|   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | ||||
|   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
|   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|   * | ||||
|   ****************************************************************************** | ||||
|   */ | ||||
|  | ||||
| /* Define to prevent recursive inclusion -------------------------------------*/ | ||||
| #ifndef __FT5336_H | ||||
| #define __FT5336_H | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| /* Set Multi-touch as supported */ | ||||
| #if !defined(TS_MONO_TOUCH_SUPPORTED) | ||||
| #define TS_MULTI_TOUCH_SUPPORTED        0 | ||||
| #endif /* TS_MONO_TOUCH_SUPPORTED */ | ||||
|  | ||||
| /* Includes ------------------------------------------------------------------*/ | ||||
| #include "../Common/ts.h" | ||||
|  | ||||
| /* Macros --------------------------------------------------------------------*/ | ||||
|  | ||||
| #if defined(FT5336_ENABLE_ASSERT) | ||||
| /* Assert activated */ | ||||
| #define FT5336_ASSERT(__condition__)      do { if(__condition__) \ | ||||
|                                                {  \ | ||||
|                                                  while(1);  \ | ||||
|                                                } \ | ||||
|                                           }while(0) | ||||
| #else | ||||
| /* Assert not activated : macro has no effect */ | ||||
| #define FT5336_ASSERT(__condition__)    do { if(__condition__) \ | ||||
|                                              {  \ | ||||
|                                                 ;  \ | ||||
|                                              } \ | ||||
|                                             }while(0) | ||||
| #endif /* FT5336_ENABLE_ASSERT == 1 */ | ||||
|  | ||||
| /** @typedef ft5336_handle_TypeDef | ||||
|  *  ft5336 Handle definition. | ||||
|  */ | ||||
| typedef struct | ||||
| { | ||||
|   uint8_t i2cInitialized; | ||||
|  | ||||
|   /* field holding the current number of simultaneous active touches */ | ||||
|   uint8_t currActiveTouchNb; | ||||
|  | ||||
|   /* field holding the touch index currently managed */ | ||||
|   uint8_t currActiveTouchIdx; | ||||
|  | ||||
| } ft5336_handle_TypeDef; | ||||
|  | ||||
|   /** @addtogroup BSP | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /** @addtogroup Component | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /** @defgroup FT5336 | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /* Exported types ------------------------------------------------------------*/ | ||||
|  | ||||
|   /** @defgroup FT5336_Exported_Types | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /* Exported constants --------------------------------------------------------*/ | ||||
|  | ||||
|   /** @defgroup FT5336_Exported_Constants | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /* I2C Slave address of touchscreen FocalTech FT5336 */ | ||||
| #define FT5336_I2C_SLAVE_ADDRESS            ((uint8_t)0x70) | ||||
|  | ||||
|   /* Maximum border values of the touchscreen pad */ | ||||
| #define FT5336_MAX_WIDTH                    ((uint16_t)480)     /* Touchscreen pad max width   */ | ||||
| #define FT5336_MAX_HEIGHT                   ((uint16_t)272)     /* Touchscreen pad max height  */ | ||||
|  | ||||
|   /* Possible values of driver functions return status */ | ||||
| #define FT5336_STATUS_OK                    ((uint8_t)0x00) | ||||
| #define FT5336_STATUS_NOT_OK                ((uint8_t)0x01) | ||||
|  | ||||
|   /* Possible values of global variable 'TS_I2C_Initialized' */ | ||||
| #define FT5336_I2C_NOT_INITIALIZED          ((uint8_t)0x00) | ||||
| #define FT5336_I2C_INITIALIZED              ((uint8_t)0x01) | ||||
|  | ||||
|   /* Max detectable simultaneous touches */ | ||||
| #define FT5336_MAX_DETECTABLE_TOUCH         ((uint8_t)0x05) | ||||
|  | ||||
|   /** | ||||
|    * @brief : Definitions for FT5336 I2C register addresses on 8 bit | ||||
|    **/ | ||||
|  | ||||
|   /* Current mode register of the FT5336 (R/W) */ | ||||
| #define FT5336_DEV_MODE_REG                 ((uint8_t)0x00) | ||||
|  | ||||
|   /* Possible values of FT5336_DEV_MODE_REG */ | ||||
| #define FT5336_DEV_MODE_WORKING             ((uint8_t)0x00) | ||||
| #define FT5336_DEV_MODE_FACTORY             ((uint8_t)0x04) | ||||
|  | ||||
| #define FT5336_DEV_MODE_MASK                ((uint8_t)0x07) | ||||
| #define FT5336_DEV_MODE_SHIFT               ((uint8_t)0x04) | ||||
|  | ||||
|   /* Gesture ID register */ | ||||
| #define FT5336_GEST_ID_REG                  ((uint8_t)0x01) | ||||
|  | ||||
|   /* Possible values of FT5336_GEST_ID_REG */ | ||||
| #define FT5336_GEST_ID_NO_GESTURE           ((uint8_t)0x00) | ||||
| #define FT5336_GEST_ID_MOVE_UP              ((uint8_t)0x10) | ||||
| #define FT5336_GEST_ID_MOVE_RIGHT           ((uint8_t)0x14) | ||||
| #define FT5336_GEST_ID_MOVE_DOWN            ((uint8_t)0x18) | ||||
| #define FT5336_GEST_ID_MOVE_LEFT            ((uint8_t)0x1C) | ||||
| #define FT5336_GEST_ID_SINGLE_CLICK         ((uint8_t)0x20) | ||||
| #define FT5336_GEST_ID_DOUBLE_CLICK         ((uint8_t)0x22) | ||||
| #define FT5336_GEST_ID_ROTATE_CLOCKWISE     ((uint8_t)0x28) | ||||
| #define FT5336_GEST_ID_ROTATE_C_CLOCKWISE   ((uint8_t)0x29) | ||||
| #define FT5336_GEST_ID_ZOOM_IN              ((uint8_t)0x40) | ||||
| #define FT5336_GEST_ID_ZOOM_OUT             ((uint8_t)0x49) | ||||
|  | ||||
|   /* Touch Data Status register : gives number of active touch points (0..5) */ | ||||
| #define FT5336_TD_STAT_REG                  ((uint8_t)0x02) | ||||
|  | ||||
|   /* Values related to FT5336_TD_STAT_REG */ | ||||
| #define FT5336_TD_STAT_MASK                 ((uint8_t)0x0F) | ||||
| #define FT5336_TD_STAT_SHIFT                ((uint8_t)0x00) | ||||
|  | ||||
|   /* Values Pn_XH and Pn_YH related */ | ||||
| #define FT5336_TOUCH_EVT_FLAG_PRESS_DOWN    ((uint8_t)0x00) | ||||
| #define FT5336_TOUCH_EVT_FLAG_LIFT_UP       ((uint8_t)0x01) | ||||
| #define FT5336_TOUCH_EVT_FLAG_CONTACT       ((uint8_t)0x02) | ||||
| #define FT5336_TOUCH_EVT_FLAG_NO_EVENT      ((uint8_t)0x03) | ||||
|  | ||||
| #define FT5336_TOUCH_EVT_FLAG_SHIFT         ((uint8_t)0x06) | ||||
| #define FT5336_TOUCH_EVT_FLAG_MASK          ((uint8_t)(3 << FT5336_TOUCH_EVT_FLAG_SHIFT)) | ||||
|  | ||||
| #define FT5336_TOUCH_POS_MSB_MASK           ((uint8_t)0x0F) | ||||
| #define FT5336_TOUCH_POS_MSB_SHIFT          ((uint8_t)0x00) | ||||
|  | ||||
|   /* Values Pn_XL and Pn_YL related */ | ||||
| #define FT5336_TOUCH_POS_LSB_MASK           ((uint8_t)0xFF) | ||||
| #define FT5336_TOUCH_POS_LSB_SHIFT          ((uint8_t)0x00) | ||||
|  | ||||
| #define FT5336_P1_XH_REG                    ((uint8_t)0x03) | ||||
| #define FT5336_P1_XL_REG                    ((uint8_t)0x04) | ||||
| #define FT5336_P1_YH_REG                    ((uint8_t)0x05) | ||||
| #define FT5336_P1_YL_REG                    ((uint8_t)0x06) | ||||
|  | ||||
| /* Touch Pressure register value (R) */ | ||||
| #define FT5336_P1_WEIGHT_REG                ((uint8_t)0x07) | ||||
|  | ||||
| /* Values Pn_WEIGHT related  */ | ||||
| #define FT5336_TOUCH_WEIGHT_MASK            ((uint8_t)0xFF) | ||||
| #define FT5336_TOUCH_WEIGHT_SHIFT           ((uint8_t)0x00) | ||||
|  | ||||
| /* Touch area register */ | ||||
| #define FT5336_P1_MISC_REG                  ((uint8_t)0x08) | ||||
|  | ||||
| /* Values related to FT5336_Pn_MISC_REG */ | ||||
| #define FT5336_TOUCH_AREA_MASK              ((uint8_t)(0x04 << 4)) | ||||
| #define FT5336_TOUCH_AREA_SHIFT             ((uint8_t)0x04) | ||||
|  | ||||
| #define FT5336_P2_XH_REG                    ((uint8_t)0x09) | ||||
| #define FT5336_P2_XL_REG                    ((uint8_t)0x0A) | ||||
| #define FT5336_P2_YH_REG                    ((uint8_t)0x0B) | ||||
| #define FT5336_P2_YL_REG                    ((uint8_t)0x0C) | ||||
| #define FT5336_P2_WEIGHT_REG                ((uint8_t)0x0D) | ||||
| #define FT5336_P2_MISC_REG                  ((uint8_t)0x0E) | ||||
|  | ||||
| #define FT5336_P3_XH_REG                    ((uint8_t)0x0F) | ||||
| #define FT5336_P3_XL_REG                    ((uint8_t)0x10) | ||||
| #define FT5336_P3_YH_REG                    ((uint8_t)0x11) | ||||
| #define FT5336_P3_YL_REG                    ((uint8_t)0x12) | ||||
| #define FT5336_P3_WEIGHT_REG                ((uint8_t)0x13) | ||||
| #define FT5336_P3_MISC_REG                  ((uint8_t)0x14) | ||||
|  | ||||
| #define FT5336_P4_XH_REG                    ((uint8_t)0x15) | ||||
| #define FT5336_P4_XL_REG                    ((uint8_t)0x16) | ||||
| #define FT5336_P4_YH_REG                    ((uint8_t)0x17) | ||||
| #define FT5336_P4_YL_REG                    ((uint8_t)0x18) | ||||
| #define FT5336_P4_WEIGHT_REG                ((uint8_t)0x19) | ||||
| #define FT5336_P4_MISC_REG                  ((uint8_t)0x1A) | ||||
|  | ||||
| #define FT5336_P5_XH_REG                    ((uint8_t)0x1B) | ||||
| #define FT5336_P5_XL_REG                    ((uint8_t)0x1C) | ||||
| #define FT5336_P5_YH_REG                    ((uint8_t)0x1D) | ||||
| #define FT5336_P5_YL_REG                    ((uint8_t)0x1E) | ||||
| #define FT5336_P5_WEIGHT_REG                ((uint8_t)0x1F) | ||||
| #define FT5336_P5_MISC_REG                  ((uint8_t)0x20) | ||||
|  | ||||
| #define FT5336_P6_XH_REG                    ((uint8_t)0x21) | ||||
| #define FT5336_P6_XL_REG                    ((uint8_t)0x22) | ||||
| #define FT5336_P6_YH_REG                    ((uint8_t)0x23) | ||||
| #define FT5336_P6_YL_REG                    ((uint8_t)0x24) | ||||
| #define FT5336_P6_WEIGHT_REG                ((uint8_t)0x25) | ||||
| #define FT5336_P6_MISC_REG                  ((uint8_t)0x26) | ||||
|  | ||||
| #define FT5336_P7_XH_REG                    ((uint8_t)0x27) | ||||
| #define FT5336_P7_XL_REG                    ((uint8_t)0x28) | ||||
| #define FT5336_P7_YH_REG                    ((uint8_t)0x29) | ||||
| #define FT5336_P7_YL_REG                    ((uint8_t)0x2A) | ||||
| #define FT5336_P7_WEIGHT_REG                ((uint8_t)0x2B) | ||||
| #define FT5336_P7_MISC_REG                  ((uint8_t)0x2C) | ||||
|  | ||||
| #define FT5336_P8_XH_REG                    ((uint8_t)0x2D) | ||||
| #define FT5336_P8_XL_REG                    ((uint8_t)0x2E) | ||||
| #define FT5336_P8_YH_REG                    ((uint8_t)0x2F) | ||||
| #define FT5336_P8_YL_REG                    ((uint8_t)0x30) | ||||
| #define FT5336_P8_WEIGHT_REG                ((uint8_t)0x31) | ||||
| #define FT5336_P8_MISC_REG                  ((uint8_t)0x32) | ||||
|  | ||||
| #define FT5336_P9_XH_REG                    ((uint8_t)0x33) | ||||
| #define FT5336_P9_XL_REG                    ((uint8_t)0x34) | ||||
| #define FT5336_P9_YH_REG                    ((uint8_t)0x35) | ||||
| #define FT5336_P9_YL_REG                    ((uint8_t)0x36) | ||||
| #define FT5336_P9_WEIGHT_REG                ((uint8_t)0x37) | ||||
| #define FT5336_P9_MISC_REG                  ((uint8_t)0x38) | ||||
|  | ||||
| #define FT5336_P10_XH_REG                   ((uint8_t)0x39) | ||||
| #define FT5336_P10_XL_REG                   ((uint8_t)0x3A) | ||||
| #define FT5336_P10_YH_REG                   ((uint8_t)0x3B) | ||||
| #define FT5336_P10_YL_REG                   ((uint8_t)0x3C) | ||||
| #define FT5336_P10_WEIGHT_REG               ((uint8_t)0x3D) | ||||
| #define FT5336_P10_MISC_REG                 ((uint8_t)0x3E) | ||||
|  | ||||
|   /* Threshold for touch detection */ | ||||
| #define FT5336_TH_GROUP_REG                 ((uint8_t)0x80) | ||||
|  | ||||
|   /* Values FT5336_TH_GROUP_REG : threshold related  */ | ||||
| #define FT5336_THRESHOLD_MASK               ((uint8_t)0xFF) | ||||
| #define FT5336_THRESHOLD_SHIFT              ((uint8_t)0x00) | ||||
|  | ||||
|   /* Filter function coefficients */ | ||||
| #define FT5336_TH_DIFF_REG                  ((uint8_t)0x85) | ||||
|  | ||||
|   /* Control register */ | ||||
| #define FT5336_CTRL_REG                     ((uint8_t)0x86) | ||||
|  | ||||
|   /* Values related to FT5336_CTRL_REG */ | ||||
|  | ||||
|   /* Will keep the Active mode when there is no touching */ | ||||
| #define FT5336_CTRL_KEEP_ACTIVE_MODE        ((uint8_t)0x00) | ||||
|  | ||||
|   /* Switching from Active mode to Monitor mode automatically when there is no touching */ | ||||
| #define FT5336_CTRL_KEEP_AUTO_SWITCH_MONITOR_MODE  ((uint8_t)0x01 | ||||
|  | ||||
|   /* The time period of switching from Active mode to Monitor mode when there is no touching */ | ||||
| #define FT5336_TIMEENTERMONITOR_REG         ((uint8_t)0x87) | ||||
|  | ||||
|   /* Report rate in Active mode */ | ||||
| #define FT5336_PERIODACTIVE_REG             ((uint8_t)0x88) | ||||
|  | ||||
|   /* Report rate in Monitor mode */ | ||||
| #define FT5336_PERIODMONITOR_REG            ((uint8_t)0x89) | ||||
|  | ||||
|   /* The value of the minimum allowed angle while Rotating gesture mode */ | ||||
| #define FT5336_RADIAN_VALUE_REG             ((uint8_t)0x91) | ||||
|  | ||||
|   /* Maximum offset while Moving Left and Moving Right gesture */ | ||||
| #define FT5336_OFFSET_LEFT_RIGHT_REG        ((uint8_t)0x92) | ||||
|  | ||||
|   /* Maximum offset while Moving Up and Moving Down gesture */ | ||||
| #define FT5336_OFFSET_UP_DOWN_REG           ((uint8_t)0x93) | ||||
|  | ||||
|   /* Minimum distance while Moving Left and Moving Right gesture */ | ||||
| #define FT5336_DISTANCE_LEFT_RIGHT_REG      ((uint8_t)0x94) | ||||
|  | ||||
|   /* Minimum distance while Moving Up and Moving Down gesture */ | ||||
| #define FT5336_DISTANCE_UP_DOWN_REG         ((uint8_t)0x95) | ||||
|  | ||||
|   /* Maximum distance while Zoom In and Zoom Out gesture */ | ||||
| #define FT5336_DISTANCE_ZOOM_REG            ((uint8_t)0x96) | ||||
|  | ||||
|   /* High 8-bit of LIB Version info */ | ||||
| #define FT5336_LIB_VER_H_REG                ((uint8_t)0xA1) | ||||
|  | ||||
|   /* Low 8-bit of LIB Version info */ | ||||
| #define FT5336_LIB_VER_L_REG                ((uint8_t)0xA2) | ||||
|  | ||||
|   /* Chip Selecting */ | ||||
| #define FT5336_CIPHER_REG                   ((uint8_t)0xA3) | ||||
|  | ||||
|   /* Interrupt mode register (used when in interrupt mode) */ | ||||
| #define FT5336_GMODE_REG                    ((uint8_t)0xA4) | ||||
|  | ||||
| #define FT5336_G_MODE_INTERRUPT_MASK        ((uint8_t)0x03) | ||||
| #define FT5336_G_MODE_INTERRUPT_SHIFT       ((uint8_t)0x00) | ||||
|  | ||||
|   /* Possible values of FT5336_GMODE_REG */ | ||||
| #define FT5336_G_MODE_INTERRUPT_POLLING     ((uint8_t)0x00) | ||||
| #define FT5336_G_MODE_INTERRUPT_TRIGGER     ((uint8_t)0x01) | ||||
|  | ||||
|   /* Current power mode the FT5336 system is in (R) */ | ||||
| #define FT5336_PWR_MODE_REG                 ((uint8_t)0xA5) | ||||
|  | ||||
|   /* FT5336 firmware version */ | ||||
| #define FT5336_FIRMID_REG                   ((uint8_t)0xA6) | ||||
|  | ||||
|   /* FT5336 Chip identification register */ | ||||
| #define FT5336_CHIP_ID_REG                  ((uint8_t)0xA8) | ||||
|  | ||||
|   /*  Possible values of FT5336_CHIP_ID_REG */ | ||||
| #define FT5336_ID_VALUE                     ((uint8_t)0x51) | ||||
|  | ||||
|   /* Release code version */ | ||||
| #define FT5336_RELEASE_CODE_ID_REG          ((uint8_t)0xAF) | ||||
|  | ||||
|   /* Current operating mode the FT5336 system is in (R) */ | ||||
| #define FT5336_STATE_REG                    ((uint8_t)0xBC) | ||||
|  | ||||
|   /** | ||||
|    * @} | ||||
|    */ | ||||
|  | ||||
|   /* Exported macro ------------------------------------------------------------*/ | ||||
|  | ||||
|   /** @defgroup ft5336_Exported_Macros | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /* Exported functions --------------------------------------------------------*/ | ||||
|  | ||||
|   /** @defgroup ft5336_Exported_Functions | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|   /** | ||||
|    * @brief ft5336 Control functions | ||||
|    */ | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * @brief  Initialize the ft5336 communication bus | ||||
|  *         from MCU to FT5336 : ie I2C channel initialization (if required). | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|  * @retval None | ||||
|  */ | ||||
| void ft5336_Init(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Software Reset the ft5336. | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|  * @retval None | ||||
|  */ | ||||
| void ft5336_Reset(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Read the ft5336 device ID, pre initialize I2C in case of need to be | ||||
|  *         able to read the FT5336 device ID, and verify this is a FT5336. | ||||
|  * @param  DeviceAddr: I2C FT5336 Slave address. | ||||
|  * @retval The Device ID (two bytes). | ||||
|  */ | ||||
| uint16_t ft5336_ReadID(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Configures the touch Screen IC device to start detecting touches | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address). | ||||
|  * @retval None. | ||||
|  */ | ||||
| void ft5336_TS_Start(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Return if there is touches detected or not. | ||||
|  *         Try to detect new touches and forget the old ones (reset internal global | ||||
|  *         variables). | ||||
|  * @param  DeviceAddr: Device address on communication Bus. | ||||
|  * @retval : Number of active touches detected (can be 0, 1 or 2). | ||||
|  */ | ||||
| uint8_t ft5336_TS_DetectTouch(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Get the touch screen X and Y positions values | ||||
|  *         Manage multi touch thanks to touch Index global | ||||
|  *         variable 'ft5336_handle.currActiveTouchIdx'. | ||||
|  * @param  DeviceAddr: Device address on communication Bus. | ||||
|  * @param  X: Pointer to X position value | ||||
|  * @param  Y: Pointer to Y position value | ||||
|  * @retval None. | ||||
|  */ | ||||
| void ft5336_TS_GetXY(uint16_t DeviceAddr, uint16_t *X, uint16_t *Y); | ||||
|  | ||||
| /** | ||||
|  * @brief  Configure the FT5336 device to generate IT on given INT pin | ||||
|  *         connected to MCU as EXTI. | ||||
|  * @param  DeviceAddr: Device address on communication Bus (Slave I2C address of FT5336). | ||||
|  * @retval None | ||||
|  */ | ||||
| void ft5336_TS_EnableIT(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Configure the FT5336 device to stop generating IT on the given INT pin | ||||
|  *         connected to MCU as EXTI. | ||||
|  * @param  DeviceAddr: Device address on communication Bus (Slave I2C address of FT5336). | ||||
|  * @retval None | ||||
|  */ | ||||
| void ft5336_TS_DisableIT(uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Get IT status from FT5336 interrupt status registers | ||||
|  *         Should be called Following an EXTI coming to the MCU to know the detailed | ||||
|  *         reason of the interrupt. | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|  * @retval TS interrupts status | ||||
|  */ | ||||
| uint8_t ft5336_TS_ITStatus (uint16_t DeviceAddr); | ||||
|  | ||||
| /** | ||||
|  * @brief  Clear IT status in FT5336 interrupt status clear registers | ||||
|  *         Should be called Following an EXTI coming to the MCU. | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|  * @retval TS interrupts status | ||||
|  */ | ||||
| void ft5336_TS_ClearIT (uint16_t DeviceAddr); | ||||
|  | ||||
| /**** NEW FEATURES enabled when Multi-touch support is enabled ****/ | ||||
|  | ||||
| #if (TS_MULTI_TOUCH_SUPPORTED == 1) | ||||
|  | ||||
| /** | ||||
|  * @brief  Get the last touch gesture identification (zoom, move up/down...). | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|  * @param  pGestureId : Pointer to get last touch gesture Identification. | ||||
|  * @retval None. | ||||
|  */ | ||||
| void ft5336_TS_GetGestureID(uint16_t DeviceAddr, uint32_t * pGestureId); | ||||
|  | ||||
| /** | ||||
|  * @brief  Get the touch detailed informations on touch number 'touchIdx' (0..1) | ||||
|  *         This touch detailed information contains : | ||||
|  *         - weight that was applied to this touch | ||||
|  *         - sub-area of the touch in the touch panel | ||||
|  *         - event of linked to the touch (press down, lift up, ...) | ||||
|  * @param  DeviceAddr: Device address on communication Bus (I2C slave address of FT5336). | ||||
|  * @param  touchIdx : Passed index of the touch (0..1) on which we want to get the | ||||
|  *                    detailed information. | ||||
|  * @param  pWeight : Pointer to to get the weight information of 'touchIdx'. | ||||
|  * @param  pArea   : Pointer to to get the sub-area information of 'touchIdx'. | ||||
|  * @param  pEvent  : Pointer to to get the event information of 'touchIdx'. | ||||
|  | ||||
|  * @retval None. | ||||
|  */ | ||||
| void ft5336_TS_GetTouchInfo(uint16_t   DeviceAddr, | ||||
|                             uint32_t   touchIdx, | ||||
|                             uint32_t * pWeight, | ||||
|                             uint32_t * pArea, | ||||
|                             uint32_t * pEvent); | ||||
|  | ||||
| #endif /* TS_MULTI_TOUCH_SUPPORTED == 1 */ | ||||
|  | ||||
| /* Imported TS IO functions --------------------------------------------------------*/ | ||||
|  | ||||
| /** @defgroup ft5336_Imported_Functions | ||||
|  * @{ | ||||
|  */ | ||||
|  | ||||
| /* TouchScreen (TS) external IO functions */ | ||||
| extern void     TS_IO_Init(void); | ||||
| extern void    TS_IO_Write(uint8_t Addr, uint8_t Reg, uint8_t Value); | ||||
| extern uint8_t TS_IO_Read(uint8_t Addr, uint8_t Reg); | ||||
| extern void    TS_IO_Delay(uint32_t Delay); | ||||
|  | ||||
|   /** | ||||
|    * @} | ||||
|    */ | ||||
|  | ||||
|   /* Imported global variables --------------------------------------------------------*/ | ||||
|  | ||||
|   /** @defgroup ft5336_Imported_Globals | ||||
|    * @{ | ||||
|    */ | ||||
|  | ||||
|  | ||||
| /* Touch screen driver structure */ | ||||
| extern TS_DrvTypeDef ft5336_ts_drv; | ||||
|  | ||||
|   /** | ||||
|    * @} | ||||
|    */ | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
| #endif /* __FT5336_H */ | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @} | ||||
|  */ | ||||
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ | ||||
		Reference in New Issue
	
	Block a user