// 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;
}