2b

Fork of TS_DISCO_F429ZI by ST

Committer:
Robsonik16
Date:
Fri May 05 19:33:30 2017 +0000
Revision:
1:ad1c1b95640c
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Robsonik16 1:ad1c1b95640c 1 //#include "mbed.h"
Robsonik16 1:ad1c1b95640c 2 //#include "TS_DISCO_F429ZI.h"
Robsonik16 1:ad1c1b95640c 3 //#include "LCD_DISCO_F429ZI.h"
Robsonik16 1:ad1c1b95640c 4 #include "Keyboard_Ts.h"
Robsonik16 1:ad1c1b95640c 5
Robsonik16 1:ad1c1b95640c 6
Robsonik16 1:ad1c1b95640c 7 TS_DISCO_F429ZI ts;
Robsonik16 1:ad1c1b95640c 8 TS_StateTypeDef TS_State;
Robsonik16 1:ad1c1b95640c 9
Robsonik16 1:ad1c1b95640c 10
Robsonik16 1:ad1c1b95640c 11
Robsonik16 1:ad1c1b95640c 12 KeyboardTs::KeyboardTs(void){
Robsonik16 1:ad1c1b95640c 13
Robsonik16 1:ad1c1b95640c 14 uint8_t status;
Robsonik16 1:ad1c1b95640c 15
Robsonik16 1:ad1c1b95640c 16 status = ts.Init(LedLcd::GetXSize(), LedLcd::GetYSize());
Robsonik16 1:ad1c1b95640c 17
Robsonik16 1:ad1c1b95640c 18 if (status != TS_OK) {
Robsonik16 1:ad1c1b95640c 19 LedLcd::Clear(LCD_COLOR_RED);
Robsonik16 1:ad1c1b95640c 20 LedLcd::SetBackColor(LCD_COLOR_RED);
Robsonik16 1:ad1c1b95640c 21 LedLcd::SetTextColor(LCD_COLOR_WHITE);
Robsonik16 1:ad1c1b95640c 22 LedLcd::DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Robsonik16 1:ad1c1b95640c 23 LedLcd::DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
Robsonik16 1:ad1c1b95640c 24 } else {
Robsonik16 1:ad1c1b95640c 25 LedLcd::Clear(LCD_COLOR_GREEN);
Robsonik16 1:ad1c1b95640c 26 LedLcd::SetBackColor(LCD_COLOR_GREEN);
Robsonik16 1:ad1c1b95640c 27 LedLcd::SetTextColor(LCD_COLOR_WHITE);
Robsonik16 1:ad1c1b95640c 28 LedLcd::DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
Robsonik16 1:ad1c1b95640c 29 LedLcd::DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
Robsonik16 1:ad1c1b95640c 30 }
Robsonik16 1:ad1c1b95640c 31 wait_ms(500);
Robsonik16 1:ad1c1b95640c 32 BSP_LCD_SetFont(&Font20);
Robsonik16 1:ad1c1b95640c 33
Robsonik16 1:ad1c1b95640c 34 LedLcd::Clear(LCD_COLOR_BLACK);
Robsonik16 1:ad1c1b95640c 35 LedLcd::SetBackColor(LCD_COLOR_BLACK);
Robsonik16 1:ad1c1b95640c 36 LedLcd::SetTextColor(LCD_COLOR_GREEN);
Robsonik16 1:ad1c1b95640c 37
Robsonik16 1:ad1c1b95640c 38 for(uint8_t i=0; i<4; i++)
Robsonik16 1:ad1c1b95640c 39 LedLcd::DrawRect(0,0+80*i,80,80);
Robsonik16 1:ad1c1b95640c 40 }
Robsonik16 1:ad1c1b95640c 41
Robsonik16 1:ad1c1b95640c 42
Robsonik16 1:ad1c1b95640c 43 bool KeyboardTs::touchInRect(uint16_t TouchXpos, uint16_t TouchYpos,uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
Robsonik16 1:ad1c1b95640c 44 {
Robsonik16 1:ad1c1b95640c 45 if((TouchXpos>=Xpos)&&(TouchXpos<=Xpos+Width)&&(TouchYpos>=Ypos)&&(TouchYpos<=Ypos+Height))return (true);
Robsonik16 1:ad1c1b95640c 46 else return(false);
Robsonik16 1:ad1c1b95640c 47 }
Robsonik16 1:ad1c1b95640c 48
Robsonik16 1:ad1c1b95640c 49 enum KeyboardState KeyboardTs::eRead(void){
Robsonik16 1:ad1c1b95640c 50
Robsonik16 1:ad1c1b95640c 51 ts.GetState(&TS_State);
Robsonik16 1:ad1c1b95640c 52 if (TS_State.TouchDetected) {
Robsonik16 1:ad1c1b95640c 53 x = TS_State.X;
Robsonik16 1:ad1c1b95640c 54 y = TS_State.Y;
Robsonik16 1:ad1c1b95640c 55 if(touchInRect(x,y,1,1+80*0,79,79)) return (BUTTON_0);
Robsonik16 1:ad1c1b95640c 56 if(touchInRect(x,y,1,1+80*1,79,79)) return (BUTTON_1);
Robsonik16 1:ad1c1b95640c 57 if(touchInRect(x,y,1,1+80*2,79,79)) return (BUTTON_2);
Robsonik16 1:ad1c1b95640c 58 if(touchInRect(x,y,1,1+80*3,79,79)) return (BUTTON_3);
Robsonik16 1:ad1c1b95640c 59 return(RELASED);
Robsonik16 1:ad1c1b95640c 60 }else{
Robsonik16 1:ad1c1b95640c 61 return(RELASED);
Robsonik16 1:ad1c1b95640c 62 }
Robsonik16 1:ad1c1b95640c 63 }
Robsonik16 1:ad1c1b95640c 64
Robsonik16 1:ad1c1b95640c 65