a

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Keyboard_Ts.cpp

Committer:
wierzba100
Date:
2022-05-11
Revision:
0:515a71b6fd11

File content as of revision 0:515a71b6fd11:

#include "Keyboard_Ts.h"
#include "TS_DISCO_F429ZI.h"

TS_DISCO_F429ZI ts;

TS_StateTypeDef TS_State;

KeyboardTs::KeyboardTs(unsigned char ucButtonPos): ucButtonMode(ucButtonPos){}

enum KeyboardState KeyboardTs::eRead(void)
{
    ts.GetState(&TS_State);
    unsigned int uiX;
    unsigned int uiY;
    if (TS_State.TouchDetected)
    {
        uiX=TS_State.X;
        uiY=TS_State.Y;
    }else
    {
        uiX=0;
        uiY=0;
    }
    switch(ucButtonMode)
    {
        case 0:
            if(uiX > 0 && uiX < 79 && uiY > 0 && uiY < 79)
            {
                return BUTTON_0;
            }
            else if(uiX > 0 && uiX < 79 && uiY > 80 && uiY < 160)
            {
                return BUTTON_1;
            }
            else if(uiX > 0 && uiX < 79 && uiY > 160 && uiY < 240)
            {
                return BUTTON_2;
            }
            else if(uiX > 0 && uiX < 79 && uiY > 240 && uiY < 320)
            {
                return BUTTON_3;
            }
            else{
                return RELASED;
            }
        case 1:
            if(uiX > 80 && uiX < 160 && uiY > 0 && uiY < 79)
            {
                return BUTTON_0;
            }
            else if(uiX > 80 && uiX < 160 && uiY > 80 && uiY < 160)
            {
                return BUTTON_1;
            }
            else if(uiX > 80 && uiX < 160 && uiY > 160 && uiY < 240)
            {
                return BUTTON_2;
            }
            else if(uiX > 80 && uiX < 160 && uiY > 240 && uiY < 320)
            {
                return BUTTON_3;
            }
            else{
                return RELASED;
            }
        default:
            if(uiX > 160 && uiX < 240 && uiY > 0 && uiY < 79)
            {
                return BUTTON_0;
            }
            else if(uiX > 160 && uiX < 240 && uiY > 80 && uiY < 160)
            {
                return BUTTON_1;
            }
            else if(uiX > 160 && uiX < 240 && uiY > 160 && uiY < 240)
            {
                return BUTTON_2;
            }
            else if(uiX > 160 && uiX < 240 && uiY > 240 && uiY < 320)
            {
                return BUTTON_3;
            }
            else{
                return RELASED;
            }
    }
}