Very simple program for FT800 graphic lib (using touchscreen - button, key and slider demo)

Dependencies:   FT800_2 mbed

There is the only screen for touch screen functionality demonstration

https://habrastorage.org/files/b11/0ee/7c8/b110ee7c8e5345f8aa0876ca693ddb7a

Hardware

For documentation on the FT800 library, please refer to the respective library pages.

Connection

MCU-board is connected to TFT-module via Break Out Board. You need 6 signals to connect: SCK, MOSI and MISO are connected to a SPI channel, SS is the chip select signal, PD work as powerdown and INT for interrupts from TFT to MCU.

/media/uploads/Ksenia/4_-22-.jpg

You have to connect VDD to BLVDD at Break Out Board if you use the board:

/media/uploads/Ksenia/4_-5-.jpg

Проект для статьи "Как перестать бояться и полюбить mbed.[Часть 4]" См. https://habrahabr.ru/users/uuuulala/topics/

main.cpp

Committer:
Ksenia
Date:
2016-09-23
Revision:
0:0b7d575ba7c8

File content as of revision 0:0b7d575ba7c8:

#include "mbed.h"
#include "FT_Platform.h"

// SLSTK3400A
FT800 TFT (PE10, PE11, PE12, PE13, PB11, PD4); // mosi, miso, sck, ss, int, pd
// WIZwiki-W7500P
//FT800 TFT (D11, D12, D13, D10, D9, D8); // mosi, miso, sck, ss, int, pd
// ATSAMD21-XPRO
//FT800 TFT (PA18, PA16, PA19, PA17, PA20, PA21); // mosi, miso, sck, ss, int, pd

char sliderVal = 0;

/***********************************************************************************************************************/
/* Construct the screen and downloasd it to the TFT */
void drawScreen()
{
    TFT.DLstart();
    TFT.DL(CLEAR_COLOR_RGB(255, 255, 255));
    TFT.DL(CLEAR(1, 1, 1));
    
    TFT.FgColor(0xC1004D);
    
    TFT.Keys(27, 127, 271, 41, 29, 0, "123");
    
    TFT.DL(TAG(1));
    TFT.Button(31, 32, 148, 57, 27, OPT_FLAT, "Button");
    
    TFT.DL(TAG(2));
    TFT.Slider(244, 45, 161, 17, 0, sliderVal, 255);
    
    // track the touch screen
    char pressedButton = TFT.Rd8(REG_TOUCH_TAG);
    int pressedSlider = TFT.Rd32(REG_TRACKER);
    if (pressedButton == 2) {
        sliderVal = (pressedSlider >> 16) * 255 / 65536;
    }
    
    TFT.DL(COLOR_RGB(0, 0, 0));
    TFT.Text(28, 213, 28, 0, "REG_TOUCH_TAG");
    TFT.Text(28, 237, 28, 0, "REG_TRACKER");
    TFT.Number(230, 237, 28, 0, pressedButton);
    TFT.Number(230, 213, 28, 0, sliderVal);
    
    TFT.DL(DISPLAY());
    TFT.Swap();
    TFT.Flush_Co_Buffer();
    TFT.WaitCmdfifo_empty();
}

/***********************************************************************************************************************/
/* Main function */
int main()
{
    TFT.Calibrate();
    TFT.Track(244, 45, 161, 17, 2);
    while(1) {
        drawScreen();
    }
}