Basic demo showing how to use the touch screen present on the DISCO_F429ZI board.

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

Committer:
jeromecoutant
Date:
Tue Jul 04 15:54:12 2017 +0000
Revision:
3:4faee567c996
Parent:
0:91c6ab790bd7
Update with MBED rev145

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:91c6ab790bd7 1 #include "mbed.h"
bcostm 0:91c6ab790bd7 2 #include "TS_DISCO_F429ZI.h"
bcostm 0:91c6ab790bd7 3 #include "LCD_DISCO_F429ZI.h"
bcostm 0:91c6ab790bd7 4
bcostm 0:91c6ab790bd7 5 LCD_DISCO_F429ZI lcd;
bcostm 0:91c6ab790bd7 6 TS_DISCO_F429ZI ts;
bcostm 0:91c6ab790bd7 7
bcostm 0:91c6ab790bd7 8 int main()
bcostm 0:91c6ab790bd7 9 {
bcostm 0:91c6ab790bd7 10 TS_StateTypeDef TS_State;
bcostm 0:91c6ab790bd7 11 uint16_t x, y;
bcostm 0:91c6ab790bd7 12 uint8_t text[30];
bcostm 0:91c6ab790bd7 13 uint8_t status;
bcostm 0:91c6ab790bd7 14
bcostm 0:91c6ab790bd7 15 BSP_LCD_SetFont(&Font20);
bcostm 0:91c6ab790bd7 16
bcostm 0:91c6ab790bd7 17 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
bcostm 0:91c6ab790bd7 18 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE);
bcostm 0:91c6ab790bd7 19 wait(1);
bcostm 0:91c6ab790bd7 20
bcostm 0:91c6ab790bd7 21 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
bcostm 0:91c6ab790bd7 22
bcostm 0:91c6ab790bd7 23 if (status != TS_OK)
bcostm 0:91c6ab790bd7 24 {
bcostm 0:91c6ab790bd7 25 lcd.Clear(LCD_COLOR_RED);
bcostm 0:91c6ab790bd7 26 lcd.SetBackColor(LCD_COLOR_RED);
bcostm 0:91c6ab790bd7 27 lcd.SetTextColor(LCD_COLOR_WHITE);
bcostm 0:91c6ab790bd7 28 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
bcostm 0:91c6ab790bd7 29 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
bcostm 0:91c6ab790bd7 30 }
bcostm 0:91c6ab790bd7 31 else
bcostm 0:91c6ab790bd7 32 {
bcostm 0:91c6ab790bd7 33 lcd.Clear(LCD_COLOR_GREEN);
bcostm 0:91c6ab790bd7 34 lcd.SetBackColor(LCD_COLOR_GREEN);
bcostm 0:91c6ab790bd7 35 lcd.SetTextColor(LCD_COLOR_WHITE);
bcostm 0:91c6ab790bd7 36 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
bcostm 0:91c6ab790bd7 37 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
bcostm 0:91c6ab790bd7 38 }
bcostm 0:91c6ab790bd7 39
bcostm 0:91c6ab790bd7 40 wait(1);
bcostm 0:91c6ab790bd7 41 lcd.Clear(LCD_COLOR_BLUE);
bcostm 0:91c6ab790bd7 42 lcd.SetBackColor(LCD_COLOR_BLUE);
bcostm 0:91c6ab790bd7 43 lcd.SetTextColor(LCD_COLOR_WHITE);
bcostm 0:91c6ab790bd7 44
bcostm 0:91c6ab790bd7 45 while(1)
bcostm 0:91c6ab790bd7 46 {
bcostm 0:91c6ab790bd7 47
bcostm 0:91c6ab790bd7 48 ts.GetState(&TS_State);
bcostm 0:91c6ab790bd7 49 if (TS_State.TouchDetected)
bcostm 0:91c6ab790bd7 50 {
bcostm 0:91c6ab790bd7 51 x = TS_State.X;
bcostm 0:91c6ab790bd7 52 y = TS_State.Y;
bcostm 0:91c6ab790bd7 53 sprintf((char*)text, "x=%d y=%d ", x, y);
bcostm 0:91c6ab790bd7 54 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
bcostm 0:91c6ab790bd7 55 }
bcostm 0:91c6ab790bd7 56 }
bcostm 0:91c6ab790bd7 57 }