Started a gui menuflow

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Committer:
Clancy_SENDSOR
Date:
Tue Jun 09 14:57:20 2020 +0000
Revision:
0:e7b2dc7d7a7f
Child:
1:35eb0c8fa2c0
first version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Clancy_SENDSOR 0:e7b2dc7d7a7f 1 #include "mbed.h"
Clancy_SENDSOR 0:e7b2dc7d7a7f 2 #include "TS_DISCO_F429ZI.h"
Clancy_SENDSOR 0:e7b2dc7d7a7f 3 #include "LCD_DISCO_F429ZI.h"
Clancy_SENDSOR 0:e7b2dc7d7a7f 4
Clancy_SENDSOR 0:e7b2dc7d7a7f 5 LCD_DISCO_F429ZI lcd;
Clancy_SENDSOR 0:e7b2dc7d7a7f 6 TS_DISCO_F429ZI ts;
Clancy_SENDSOR 0:e7b2dc7d7a7f 7 DigitalOut led1(LED1);
Clancy_SENDSOR 0:e7b2dc7d7a7f 8 Ticker ts_service;
Clancy_SENDSOR 0:e7b2dc7d7a7f 9
Clancy_SENDSOR 0:e7b2dc7d7a7f 10 TS_StateTypeDef TS_State;
Clancy_SENDSOR 0:e7b2dc7d7a7f 11 uint16_t x, y;
Clancy_SENDSOR 0:e7b2dc7d7a7f 12 uint8_t text[30];
Clancy_SENDSOR 0:e7b2dc7d7a7f 13 uint8_t status;
Clancy_SENDSOR 0:e7b2dc7d7a7f 14
Clancy_SENDSOR 0:e7b2dc7d7a7f 15 void CheckTs()
Clancy_SENDSOR 0:e7b2dc7d7a7f 16 {
Clancy_SENDSOR 0:e7b2dc7d7a7f 17 ts.GetState(&TS_State);
Clancy_SENDSOR 0:e7b2dc7d7a7f 18 if (TS_State.TouchDetected)
Clancy_SENDSOR 0:e7b2dc7d7a7f 19 {
Clancy_SENDSOR 0:e7b2dc7d7a7f 20 x = TS_State.X;
Clancy_SENDSOR 0:e7b2dc7d7a7f 21 y = TS_State.Y;
Clancy_SENDSOR 0:e7b2dc7d7a7f 22 sprintf((char*)text, "x=%d y=%d ", x, y);
Clancy_SENDSOR 0:e7b2dc7d7a7f 23 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 24 }
Clancy_SENDSOR 0:e7b2dc7d7a7f 25 }
Clancy_SENDSOR 0:e7b2dc7d7a7f 26
Clancy_SENDSOR 0:e7b2dc7d7a7f 27 int main()
Clancy_SENDSOR 0:e7b2dc7d7a7f 28 {
Clancy_SENDSOR 0:e7b2dc7d7a7f 29 BSP_LCD_SetFont(&Font20);
Clancy_SENDSOR 0:e7b2dc7d7a7f 30
Clancy_SENDSOR 0:e7b2dc7d7a7f 31 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 32 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 33
Clancy_SENDSOR 0:e7b2dc7d7a7f 34
Clancy_SENDSOR 0:e7b2dc7d7a7f 35 wait(1);
Clancy_SENDSOR 0:e7b2dc7d7a7f 36
Clancy_SENDSOR 0:e7b2dc7d7a7f 37 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
Clancy_SENDSOR 0:e7b2dc7d7a7f 38
Clancy_SENDSOR 0:e7b2dc7d7a7f 39 if (status != TS_OK)
Clancy_SENDSOR 0:e7b2dc7d7a7f 40 {
Clancy_SENDSOR 0:e7b2dc7d7a7f 41 lcd.Clear(LCD_COLOR_RED);
Clancy_SENDSOR 0:e7b2dc7d7a7f 42 lcd.SetBackColor(LCD_COLOR_RED);
Clancy_SENDSOR 0:e7b2dc7d7a7f 43 lcd.SetTextColor(LCD_COLOR_WHITE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 44 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 45 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 46 }
Clancy_SENDSOR 0:e7b2dc7d7a7f 47 else
Clancy_SENDSOR 0:e7b2dc7d7a7f 48 {
Clancy_SENDSOR 0:e7b2dc7d7a7f 49 lcd.Clear(LCD_COLOR_GREEN);
Clancy_SENDSOR 0:e7b2dc7d7a7f 50 lcd.SetBackColor(LCD_COLOR_GREEN);
Clancy_SENDSOR 0:e7b2dc7d7a7f 51 lcd.SetTextColor(LCD_COLOR_WHITE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 52 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 53 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 54 }
Clancy_SENDSOR 0:e7b2dc7d7a7f 55
Clancy_SENDSOR 0:e7b2dc7d7a7f 56 wait(1);
Clancy_SENDSOR 0:e7b2dc7d7a7f 57 lcd.Clear(LCD_COLOR_BLUE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 58 lcd.SetBackColor(LCD_COLOR_BLUE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 59 lcd.SetTextColor(LCD_COLOR_WHITE);
Clancy_SENDSOR 0:e7b2dc7d7a7f 60
Clancy_SENDSOR 0:e7b2dc7d7a7f 61 ts_service.attach(&CheckTs, 0.2); // the address of the function to be attached (flip) and the interval (2 seconds)
Clancy_SENDSOR 0:e7b2dc7d7a7f 62
Clancy_SENDSOR 0:e7b2dc7d7a7f 63 while(1)
Clancy_SENDSOR 0:e7b2dc7d7a7f 64 {
Clancy_SENDSOR 0:e7b2dc7d7a7f 65 led1 = !led1;
Clancy_SENDSOR 0:e7b2dc7d7a7f 66 wait(0.5);
Clancy_SENDSOR 0:e7b2dc7d7a7f 67
Clancy_SENDSOR 0:e7b2dc7d7a7f 68 }
Clancy_SENDSOR 0:e7b2dc7d7a7f 69 }