Very simple SW using FT800 graphic lib [NO TOUCHSCREEN USED]

Dependencies:   FT800_2 mbed

Demo for FT800 graphic lib. There is only one screen with seconds counter and Clock widget, no touchscreen functionality.

https://habrastorage.org/files/053/a28/a1a/053a28a1a81c47f4b24eb61d92d8bb37

Hardware

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.

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

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

Photo

/media/uploads/Ksenia/p1010069_.png

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

Committer:
Ksenia
Date:
Fri Sep 16 12:55:01 2016 +0000
Revision:
0:f3c452ce44ed
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ksenia 0:f3c452ce44ed 1 #include "mbed.h"
Ksenia 0:f3c452ce44ed 2 #include "FT_Platform.h"
Ksenia 0:f3c452ce44ed 3
Ksenia 0:f3c452ce44ed 4 Ticker timeKeeping;
Ksenia 0:f3c452ce44ed 5 volatile uint64_t seconds = 0;
Ksenia 0:f3c452ce44ed 6
Ksenia 0:f3c452ce44ed 7 /***********************************************************************************************************************/
Ksenia 0:f3c452ce44ed 8 /* Declare and initialize FTDI FT800 controller according to SPI lines connected */
Ksenia 0:f3c452ce44ed 9
Ksenia 0:f3c452ce44ed 10 // SLSTK3400A
Ksenia 0:f3c452ce44ed 11 FT800 TFT (PE10, PE11, PE12, PE13, PB11, PD4); // mosi, miso, sck, ss, int, pd
Ksenia 0:f3c452ce44ed 12
Ksenia 0:f3c452ce44ed 13 // WIZwiki-W7500P
Ksenia 0:f3c452ce44ed 14 //FT800 TFT (D11, D12, D13, D10, D9, D8); // mosi, miso, sck, ss, int, pd
Ksenia 0:f3c452ce44ed 15
Ksenia 0:f3c452ce44ed 16 // ATSAMD21-XPRO
Ksenia 0:f3c452ce44ed 17 //FT800 TFT (PA18, PA16, PA19, PA17, PA20, PA21); // mosi, miso, sck, ss, int, pd
Ksenia 0:f3c452ce44ed 18
Ksenia 0:f3c452ce44ed 19
Ksenia 0:f3c452ce44ed 20 /***********************************************************************************************************************/
Ksenia 0:f3c452ce44ed 21 /* Seconds counter */
Ksenia 0:f3c452ce44ed 22 void secondsCallback(void)
Ksenia 0:f3c452ce44ed 23 {
Ksenia 0:f3c452ce44ed 24 seconds ++;
Ksenia 0:f3c452ce44ed 25 }
Ksenia 0:f3c452ce44ed 26
Ksenia 0:f3c452ce44ed 27 /***********************************************************************************************************************/
Ksenia 0:f3c452ce44ed 28 /* Construct the screen and downloasd it to the TFT */
Ksenia 0:f3c452ce44ed 29 void drawTimeScreen(void)
Ksenia 0:f3c452ce44ed 30 {
Ksenia 0:f3c452ce44ed 31 TFT.DLstart();
Ksenia 0:f3c452ce44ed 32 TFT.DL(CLEAR_COLOR_RGB(255, 255, 255));
Ksenia 0:f3c452ce44ed 33 TFT.DL(CLEAR(1, 1, 1));
Ksenia 0:f3c452ce44ed 34
Ksenia 0:f3c452ce44ed 35 TFT.DL(COLOR_RGB(0, 0, 0));
Ksenia 0:f3c452ce44ed 36 TFT.Text(11, 15, 30, 0, "Demo-project for habrahabr.ru");
Ksenia 0:f3c452ce44ed 37 TFT.Text(13, 15 + 40, 28, 0, "Using FT800 library");
Ksenia 0:f3c452ce44ed 38
Ksenia 0:f3c452ce44ed 39 TFT.DL(COLOR_RGB(9, 35, 5));
Ksenia 0:f3c452ce44ed 40 TFT.DL(BEGIN(RECTS));
Ksenia 0:f3c452ce44ed 41 TFT.DL(VERTEX2II(11, 105, 0, 0));
Ksenia 0:f3c452ce44ed 42 TFT.DL(VERTEX2II(11 + 275, 105 + 100, 0, 0));
Ksenia 0:f3c452ce44ed 43
Ksenia 0:f3c452ce44ed 44 TFT.DL(COLOR_RGB(255, 255, 255));
Ksenia 0:f3c452ce44ed 45 TFT.Text(11 + 10, 105 + 10, 29, 0, "Number of seconds:");
Ksenia 0:f3c452ce44ed 46 TFT.Number(11 + 10, 105 + 10 + 30, 31, 0, seconds);
Ksenia 0:f3c452ce44ed 47
Ksenia 0:f3c452ce44ed 48 TFT.Clock(390, 105 + 70, 70, 0, 4, 20, (seconds % 60), 0);
Ksenia 0:f3c452ce44ed 49
Ksenia 0:f3c452ce44ed 50 TFT.DL(COLOR_RGB(0, 0, 0));
Ksenia 0:f3c452ce44ed 51 TFT.Text(11, 240, 28, 0, "e-mail: xk@efo.ru");
Ksenia 0:f3c452ce44ed 52
Ksenia 0:f3c452ce44ed 53 TFT.DL(BEGIN(LINES));
Ksenia 0:f3c452ce44ed 54 TFT.DL(LINE_WIDTH(8));
Ksenia 0:f3c452ce44ed 55 TFT.DL(VERTEX2II(11, 15 + 40 + 30, 0, 0));
Ksenia 0:f3c452ce44ed 56 TFT.DL(VERTEX2II(460, 15 + 40 + 30, 0, 0));
Ksenia 0:f3c452ce44ed 57
Ksenia 0:f3c452ce44ed 58 TFT.DL(DISPLAY());
Ksenia 0:f3c452ce44ed 59 TFT.Swap();
Ksenia 0:f3c452ce44ed 60 }
Ksenia 0:f3c452ce44ed 61
Ksenia 0:f3c452ce44ed 62 /***********************************************************************************************************************/
Ksenia 0:f3c452ce44ed 63 /* Main function */
Ksenia 0:f3c452ce44ed 64 int main()
Ksenia 0:f3c452ce44ed 65 {
Ksenia 0:f3c452ce44ed 66 timeKeeping.attach(&secondsCallback, 1.0f);
Ksenia 0:f3c452ce44ed 67 while(1) {
Ksenia 0:f3c452ce44ed 68 drawTimeScreen();
Ksenia 0:f3c452ce44ed 69 }
Ksenia 0:f3c452ce44ed 70 }