Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

Touch Screen test.

// Built with BFTC Rev. 1.0.0, gio 28 agosto 2014 11:53:51

/*
    Copyright 2014 Digital Technology Art SRL
    This file is part of Blackfin Toolchain (BFTC) project.

    BFTC is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    BFTC is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Name-Program.  If not, see <http://www.gnu.org/licenses/>.
*/

// Example that show how to use touch screen library
//

#include "main.h"

int main(void)
{
    bool        ok;
    char        buf[32];
    int         sx, sy, ox = -1, oy;
    Set_PLL(16, 4);         // CORE: 25MHz * 16 = 400MHz, SCLK: 400MHz / 4 = 100MHz
    Set_Port();             // Set the port according to project set
    Set_Uart0(115200);      // printf is redirected to UART0
    // Init display
    Set_SPI(SPI_PP);
    Set_ExpansionPort(0xF0);// Init control bit on expansion port for LCD controls
    Set_TFTlightPower(true);// Turn on backligth
    Set_TFTlight(15);       // Set maximum brightness
    Set_SPI(SPI_TFT);       // Switch to graphics SPI channel
    Set_TFTinit();          // Init LCD controller

    gxClear(TFT_BLACK);     // Clear the screen
    gxFontColorSize(TFT_YELLOW, TFT_BLACK, 1, 1);
    gxPutString(10, 220, "TOUCH SCREEN TEST");
    // Init Touch Screen
    TS_Open();
    TS_Enable(true);        // Enable read of the pen
    while(1)                // Main loop
    {
        if(TS_Check())      // Check if Touch Screen is active
        {
            // Read cursor position
            ok = TS_ReadCursor(&sx, &sy);
            if(ok)
            {
                // Disable TS
                TS_Enable(false);
                // Dump on LCD coordinates and cursor
                Set_SPI(SPI_TFT);   // Switch to graphics SPI channel
                if(ox >= 0)         // Remove previous cross
                {
                    gxLine(ox - 10, oy, ox + 10, oy, TFT_BLACK);
                    gxLine(ox, oy - 10, ox, oy + 10, TFT_BLACK);
                }
                // Draw a cross in the cursor position
                gxLine(sx - 10, sy, sx + 10, sy, TFT_WHITE);
                gxLine(sx, sy - 10, sx, sy + 10, TFT_WHITE);
                // Display coordinates
                sprintf(buf, "X = %3d, Y = %3d", sx, sy);
                gxPutString(10, 10, buf);
                // Set SPI on TSC channel
                Set_SPI(SPI_TSC);   // Switch to touch screen the SPI channel
                ox = sx; oy = sy;
                // Enable touch screen read
                TS_Enable(true);
            }
        }
    }
    return 0;
}

Generated on Tue Apr 7 20:07:44 2015 for BF592A Library by doxygen 1.3.1