2c

Fork of TS_DISCO_F429ZI by ST

Committer:
Robsonik16
Date:
Fri May 05 19:35:45 2017 +0000
Revision:
1:b346257d266d
a

Who changed what in which revision?

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