Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version 1.0 Issue Date: 2014-03-25 This document is to introduce the setup of a Sample Application running on MSVC. The objective of the Sample Application is to enable users to become familiar with the usage of the FT800, the design flow, and display list used to design the desired user interface or visual effect. Use of FTDI devices in life support and/or safety applications is entirely at the user’s risk, and the user agrees to defend, indemnify and hold FTDI harmless from any and all damages, claims, suits or expense resulting from such use. Future Technology Devices International Limited (FTDI) Unit 1, 2 Seaward Place, Glasgow G41 1HH, United Kingdom Tel.: +44 (0) 141 429 2777 Fax: + 44 (0) 141 429 2758 Web Site: http://ftdichip.com Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 Table of Contents 1 2 3 Introduction .................................................................................................................................... 2 1.1 Overview ................................................................................................................................. 2 1.2 Scope ....................................................................................................................................... 2 Application Flow.............................................................................................................................. 3 2.1 Absolute Dial Flowchart .......................................................................................................... 3 2.2 Relative Dial Flowchart ........................................................................................................... 4 Description ...................................................................................................................................... 5 3.1 3.1.1 Download Bitmaps .......................................................................................................... 5 3.1.2 Set the Tracker Properties to Point Using CMD_TRACK ................................................. 5 3.2 4 Initialization............................................................................................................................. 5 Functionality ........................................................................................................................... 5 3.2.1 Absolute Dial ................................................................................................................... 5 3.2.2 Relative Dial .................................................................................................................... 7 Contact Information........................................................................................................................ 9 Appendix A – References ...................................................................................................................... 10 Document References....................................................................................................................... 10 Acronyms and Abbreviations ............................................................................................................ 10 Appendix B – List of Figures .................................................................................................................. 11 List of Figures .................................................................................................................................... 11 Appendix C – Revision History .............................................................................................................. 12 1 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 1 Introduction This application demonstrates interactive Absolute and Relative dials using points, track and button commands on an FT800 platform. The Absolute dial user interactive function involves moving the knob around from its minimum to maximum position, while playing sound. This dial can be activated by enabling the following define statement in “FT_Platform.h”. Absolute Dial is enabled by default. #define Absolute Dial The Relative dial user interactive function involves moving the knob, while playing sound which increases or decreases in volume. This dial can be activated by enabling the following define statement in “FT_Platform.h” #define Relative Dial It is not possible to enable both modes at the same time. 1.1 Overview The document will present a basic understanding of the FT800 CPU features Track, Points and Buttons commands. 1.2 Scope This document will be used by software programmers to develop GUI applications by using FT800 with any MCU via SPI . 2 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 2 Application Flow 2.1 Absolute Dial Flowchart Figure 2-1 Absolute Dial Flowchart 3 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 2.2 Relative Dial Flowchart Figure 2-2 Relative Dial Flowchart 4 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 3 Description Parameters needed to be initialized are described below before constructing the display list. 3.1 Initialization 3.1.1 Download Bitmaps The bitmaps are downloaded into the desired FT800 memory locations. The bitmap handles are also assigned here. Note: After these configurations are set, swap the display list and flush into the Graphics CoProcessor memory. 3.1.2 Set the Tracker Properties to Point Using CMD_TRACK In the Function Ft_Gpu_CoCmd_Track(phost,240, 136, 1, 1, tagval); where ‘tagval’– Tag value of the white circle. A w and h of (1,1) means that the tracker is rotary, and reports an angle value in REG_TRACKER. 3.2 Functionality 3.2.1 Absolute Dial The Absolute Dial demo has been designed to work like a volume dial. In this demo, the knob has to be moved according to the minimum or maximum limit on its position. Before the demo is started, the info screen is displayed with information. When the play button is pressed, the absolute dial demo is started. 3.2.1.1 Output of the Dial Ten FTpoints are drawn with the outermost circle in dark colour, gradually lightening the inner circles to have a glowing effect. The Dial is rotated with minimum and maximum positions. When the dial is moved away from its initial position, the circles are unhidden to show the output. In the dial, the bottom part of the FTPOINTS should not be seen. So an edge strip is used to get the triangle shape with only its alpha value. Stencil functions are used to mask the bottom part of the Points as shown in the code below. 5 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 Ft_App_WrCoCmd_Buffer(phost, enabled,so that no color is used for strip Ft_App_WrCoCmd_Buffer(phost, Ft_App_WrCoCmd_Buffer(phost, Ft_App_WrCoCmd_Buffer(phost, Ft_App_WrCoCmd_Buffer(phost, Ft_App_WrCoCmd_Buffer(phost, 1.0 Clearance No.: FTDI# 383 COLOR_MASK(0,0,0,1) );//only alpha is LINE_WIDTH(1*16)); STENCIL_OP(INCR,DECR) ); STENCIL_FUNC(EQUAL,0,255) ); BEGIN(EDGE_STRIP_B)); COLOR_RGB(136 ,136 ,136)); Ft_App_WrCoCmd_Buffer(phost, VERTEX2II(Tx1,FT_DispHeight,0,0)); Ft_App_WrCoCmd_Buffer(phost, VERTEX2II(Tx2,Ty2,0,0)); Ft_App_WrCoCmd_Buffer(phost, VERTEX2II(Tx3,FT_DispHeight,0,0)); Ft_App_WrCoCmd_Buffer(phost, STENCIL_OP(KEEP,INCR) ); Ft_App_WrCoCmd_Buffer(phost, STENCIL_FUNC(NOTEQUAL,255,255) ); Ft_App_WrCoCmd_Buffer(phost, COLOR_MASK(1,1,1,1) );//enable all colors 3.2.1.2 Edge Strips Four edge strips are drawn. The first is from the left, second from above, third from the right, fourth is from below. The edge strips are drawn according to the vertices that need to be hidden. The edge strips are moved around according to the rotary tag value to unhide the FTpoints that are drawn. 3.2.1.3 Blend the bitmap Place the dial bitmap. On top of it place another bitmap like the one shown below. Rotate this bitmap whenever the dial is moved to give an effect that the dial is rotating. Figure 3-1 Strips Dial Bitmap Reduce the alpha value of the strips bitmap to 20 and rotate it according to the rotary value. 6 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 Figure 3-2 Absolute Dial Screen 3.2.2 Relative Dial The Relative Dial demo has been designed to work like a volume dial. In this demo, the knob can be moved without any minimum or maximum limit on its position. The rate at which the knob is rotated determines the velocity at which the knob will stop its movement. Before the demo is started, the info screen is displayed with info. When the play button is pressed, the relative dial demo is started. 3.2.2.1 Movement of the Dial The Dial is rotated according to the rate at which it has been moved. So after the dial is rotated and pen-up has been done the knob reaches it minimum value by slowly reducing its speed. Velocity calculations are done in the MCU, not the FT800. 3.2.2.2 Button Highlight There are twelve buttons above the dial. The buttons are highlighted according to the track movement of the dial as shown in the code below. if(BaseTrackVal < 11*65535)/* BaseTrackVal is the track value of the dial*/ { /* Rotary tag when within range of particular index, highlight only the indexed button in yellow*/ if(((BaseTrackVal >= k*65535)&&(BaseTrackVal < (k+1)*65535 { Ft_Gpu_CoCmd_FgColor(phost,0xE3F914);//yellow Ft_Gpu_CoCmd_Button(phost,Vx1,Vy1,20,30,16,0,""); } else/* Color the non indexed buttons in grey color*/ { Ft_Gpu_CoCmd_FgColor(phost,0x787878);//grey Ft_Gpu_CoCmd_Button(phost,Vx1,Vy1,20,30,16,0,""); } } 7 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 3.2.2.3 Bitmaps Rotation The dial bitmap is placed at a specific location. The strips bitmap alpha value is reduced to 20 and it is rotated according to the value at which it has been rotated. Ft_Gpu_CoCmd_LoadIdentity(phost); Ft_Gpu_CoCmd_Translate(phost,F16(73),F16(73)); Ft_Gpu_CoCmd_Rotate(phost,PrevValDeg*65536/360); Ft_Gpu_CoCmd_Translate(phost,F16(-(73)),F16(-(73))); Ft_Gpu_CoCmd_SetMatrix(phost); Ft_App_WrCoCmd_Buffer(phost,TAG(1)); Ft_App_WrCoCmd_Buffer(phost,VERTEX2II((CircleX - 146/2)+40,CircleY 146/2,0,0)); 3.2.2.4 Audio Audio is played according to the volume that is selected. The Carousel effect (08H) is played continuously. Figure 3-3 Relative Dial Screen 8 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 4 Contact Information Head Office – Glasgow, UK Branch Office – Tigard, Oregon, USA Future Technology Devices International Limited Unit 1, 2 Seaward Place, Centurion Business Park Glasgow G41 1HH United Kingdom Tel: +44 (0) 141 429 2777 Fax: +44 (0) 141 429 2758 Future Technology Devices International Limited (USA) 7130 SW Fir Loop Tigard, OR 97223-8160 USA Tel: +1 (503) 547 0988 Fax: +1 (503) 547 0987 E-mail (Sales) E-mail (Support) E-mail (General Enquiries) [email protected] [email protected] [email protected] E-Mail (Sales) E-Mail (Support) E-Mail (General Enquiries) [email protected] [email protected] [email protected] Branch Office – Taipei, Taiwan Branch Office – Shanghai, China Future Technology Devices International Limited (Taiwan) 2F, No. 516, Sec. 1, NeiHu Road Taipei 114 Taiwan , R.O.C. Tel: +886 (0) 2 8791 3570 Fax: +886 (0) 2 8791 3576 Future Technology Devices International Limited (China) Room 1103, No. 666 West Huaihai Road, Shanghai, 200052 China Tel: +86 21 62351596 Fax: +86 21 62351595 E-mail (Sales) E-mail (Support) E-mail (General Enquiries) E-mail (Sales) E-mail (Support) E-mail (General Enquiries) [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Web Site http://ftdichip.com System and equipment manufacturers and designers are responsible to ensure that their systems, and any Future Technology Devices International Ltd (FTDI) devices incorporated in their systems, meet all applicable safety, regulatory and system-level performance requirements. All application-related information in this document (including application descriptions, suggested FTDI devices and other materials) is provided for reference only. While FTDI has taken care to assure it is accurate, this information is subject to customer confirmation, and FTDI disclaims all liability for system designs and for any applications assistance provided by FTDI. Use of FTDI devices in life support and/or safety applications is entirely at the user’s risk, and the user agrees to defend, indemnify and hold harmless FTDI from any and all damages, claims, suits or expense resulting from such use. This document is subject to change without notice. No freedom to use patents or other intellectual property rights is implied by the publication of this document. Neither the whole nor any part of the information contained in, or the product described in this document, may be adapted or reproduced in any material or electronic form without the prior written consent of the copyright holder. Future Technology Devices International Ltd, Unit 1, 2 Seaward Place, Centurion Business Park, Glasgow G41 1HH, United Kingdom. Scotland Registered Company Number: SC136640 9 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 Appendix A – References Document References FT800 Embedded Video Engine Datasheet FT800 programmer guide Datasheet for VM800B Datasheet for VM800C Acronyms and Abbreviations Terms Arduino Pro Description The Open Source platform variety based on the Ateml ATMega chipset EVE Embedded Video Engine SPI Serial Peripheral Interface UI User Interface 10 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 Appendix B – List of Figures List of Figures Figure 2-1 Absolute Dial Flowchart ........................................................................................ 3 Figure 2-2 Relative Dial Flowchart ......................................................................................... 4 Figure 3-1 Strips Dial Bitmap ................................................................................................ 6 Figure 3-2 Absolute Dial Screen ............................................................................................ 7 Figure 3-3 Relative Dial Screen ............................................................................................. 8 11 Copyright © 2014 Future Technology Devices International Limited Application Note AN_311 FT800 Demo Application - Absolute & Relative Dials Version Document Reference No.: FT_001014 1.0 Clearance No.: FTDI# 383 Appendix C – Revision History Document Title: AN_286 FT800 Demo Application - Absolute & Relative Dials Document Reference No.: FT_001014 Clearance No.: FTDI# 383 Product Page: http://www.ftdichip.com/FTProducts.htm Document Feedback: Send Feedback Revision Changes Date 1.0 Initial Release YYYY-MM-DD 1.0 Revised according to comments 2014-03-20 12 Copyright © 2014 Future Technology Devices International Limited