2c
Fork of TS_DISCO_F429ZI by
Keyboard_Ts.cpp@1:b346257d266d, 2017-05-05 (annotated)
- Committer:
- Robsonik16
- Date:
- Fri May 05 19:35:45 2017 +0000
- Revision:
- 1:b346257d266d
a
Who changed what in which revision?
User | Revision | Line number | New 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 |