2a

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI TS_DISCO_F429ZI mbed

Committer:
Robsonik16
Date:
Fri May 05 19:30:39 2017 +0000
Revision:
0:6d8b197659af
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Robsonik16 0:6d8b197659af 1 #include "mbed.h"
Robsonik16 0:6d8b197659af 2 #include "TS_DISCO_F429ZI.h"
Robsonik16 0:6d8b197659af 3 #include "LCD_DISCO_F429ZI.h"
Robsonik16 0:6d8b197659af 4
Robsonik16 0:6d8b197659af 5 LCD_DISCO_F429ZI lcd;
Robsonik16 0:6d8b197659af 6 TS_DISCO_F429ZI ts;
Robsonik16 0:6d8b197659af 7 bool touchInRect(uint16_t TouchXpos, uint16_t TouchYpos,uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
Robsonik16 0:6d8b197659af 8 {
Robsonik16 0:6d8b197659af 9 if((TouchXpos>=Xpos)&&(TouchXpos<=Xpos+Width)&&(TouchYpos>=Ypos)&&(TouchYpos<=Ypos+Height))return (true);
Robsonik16 0:6d8b197659af 10 else return(false);
Robsonik16 0:6d8b197659af 11 }
Robsonik16 0:6d8b197659af 12
Robsonik16 0:6d8b197659af 13 void drawNumber()
Robsonik16 0:6d8b197659af 14 {
Robsonik16 0:6d8b197659af 15 uint8_t text[3];
Robsonik16 0:6d8b197659af 16 lcd.SetTextColor(LCD_COLOR_WHITE);
Robsonik16 0:6d8b197659af 17 lcd.SetBackColor(LCD_COLOR_RED);
Robsonik16 0:6d8b197659af 18 for(uint8_t i=0; i<4; i++) {
Robsonik16 0:6d8b197659af 19 sprintf((char*)text, "%d", i);
Robsonik16 0:6d8b197659af 20 lcd.DisplayStringAt(0, 0+i*80, (uint8_t *)&text, LEFT_MODE);
Robsonik16 0:6d8b197659af 21 }
Robsonik16 0:6d8b197659af 22 lcd.SetBackColor(LCD_COLOR_BLACK);
Robsonik16 0:6d8b197659af 23 }
Robsonik16 0:6d8b197659af 24 int main()
Robsonik16 0:6d8b197659af 25 {
Robsonik16 0:6d8b197659af 26 TS_StateTypeDef TS_State;
Robsonik16 0:6d8b197659af 27 uint16_t x, y;
Robsonik16 0:6d8b197659af 28 uint8_t text[30];
Robsonik16 0:6d8b197659af 29 uint8_t status;
Robsonik16 0:6d8b197659af 30 bool UpdateAfterTouch=true;
Robsonik16 0:6d8b197659af 31
Robsonik16 0:6d8b197659af 32 BSP_LCD_SetFont(&Font20);
Robsonik16 0:6d8b197659af 33
Robsonik16 0:6d8b197659af 34 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Robsonik16 0:6d8b197659af 35 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"DEMO", CENTER_MODE);
Robsonik16 0:6d8b197659af 36 wait_ms(500);
Robsonik16 0:6d8b197659af 37
Robsonik16 0:6d8b197659af 38 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
Robsonik16 0:6d8b197659af 39
Robsonik16 0:6d8b197659af 40 if (status != TS_OK) {
Robsonik16 0:6d8b197659af 41 lcd.Clear(LCD_COLOR_RED);
Robsonik16 0:6d8b197659af 42 lcd.SetBackColor(LCD_COLOR_RED);
Robsonik16 0:6d8b197659af 43 lcd.SetTextColor(LCD_COLOR_WHITE);
Robsonik16 0:6d8b197659af 44 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Robsonik16 0:6d8b197659af 45 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
Robsonik16 0:6d8b197659af 46 } else {
Robsonik16 0:6d8b197659af 47 lcd.Clear(LCD_COLOR_GREEN);
Robsonik16 0:6d8b197659af 48 lcd.SetBackColor(LCD_COLOR_GREEN);
Robsonik16 0:6d8b197659af 49 lcd.SetTextColor(LCD_COLOR_WHITE);
Robsonik16 0:6d8b197659af 50 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Robsonik16 0:6d8b197659af 51 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
Robsonik16 0:6d8b197659af 52 }
Robsonik16 0:6d8b197659af 53
Robsonik16 0:6d8b197659af 54 wait_ms(500);
Robsonik16 0:6d8b197659af 55
Robsonik16 0:6d8b197659af 56
Robsonik16 0:6d8b197659af 57 lcd.Clear(LCD_COLOR_BLACK);
Robsonik16 0:6d8b197659af 58 lcd.SetBackColor(LCD_COLOR_BLACK);
Robsonik16 0:6d8b197659af 59 lcd.SetTextColor(LCD_COLOR_GREEN);
Robsonik16 0:6d8b197659af 60
Robsonik16 0:6d8b197659af 61 for(uint8_t i=0; i<4; i++)
Robsonik16 0:6d8b197659af 62 lcd.DrawRect(0,0+80*i,80,80);
Robsonik16 0:6d8b197659af 63
Robsonik16 0:6d8b197659af 64 lcd.SetFont(&Font24);
Robsonik16 0:6d8b197659af 65
Robsonik16 0:6d8b197659af 66 while(1) {
Robsonik16 0:6d8b197659af 67 wait_ms(100);
Robsonik16 0:6d8b197659af 68
Robsonik16 0:6d8b197659af 69
Robsonik16 0:6d8b197659af 70 ts.GetState(&TS_State);
Robsonik16 0:6d8b197659af 71 if (TS_State.TouchDetected) {
Robsonik16 0:6d8b197659af 72 UpdateAfterTouch=true;
Robsonik16 0:6d8b197659af 73 x = TS_State.X;
Robsonik16 0:6d8b197659af 74 y = TS_State.Y;
Robsonik16 0:6d8b197659af 75 lcd.SetTextColor(LCD_COLOR_GREEN);
Robsonik16 0:6d8b197659af 76 for(uint8_t i=0; i<4; i++)
Robsonik16 0:6d8b197659af 77 if(touchInRect(x,y,1,1+80*i,79,79))
Robsonik16 0:6d8b197659af 78 lcd.FillRect(1,1+80*i,79,79);
Robsonik16 0:6d8b197659af 79 drawNumber();
Robsonik16 0:6d8b197659af 80 } else if(UpdateAfterTouch == true) {
Robsonik16 0:6d8b197659af 81 UpdateAfterTouch=false;
Robsonik16 0:6d8b197659af 82 lcd.SetTextColor(LCD_COLOR_BLUE);
Robsonik16 0:6d8b197659af 83 for(uint8_t i=0; i<4; i++)
Robsonik16 0:6d8b197659af 84 lcd.FillRect(1,1+80*i,79,79);
Robsonik16 0:6d8b197659af 85 drawNumber();
Robsonik16 0:6d8b197659af 86 }
Robsonik16 0:6d8b197659af 87
Robsonik16 0:6d8b197659af 88
Robsonik16 0:6d8b197659af 89 }
Robsonik16 0:6d8b197659af 90 }