Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FlagStatus isTouched() {
- GPIO_InitTypeDef gpio;
- gpio.GPIO_Speed = GPIO_Speed_50MHz;
- gpio.GPIO_Pin = TOUCH_PIN_X1;
- gpio.GPIO_Mode = GPIO_Mode_IPU;
- GPIO_Init(TOUCH_PORT, &gpio);
- gpio.GPIO_Pin = TOUCH_PIN_Y1 | TOUCH_PIN_X2;
- gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(TOUCH_PORT, &gpio);
- gpio.GPIO_Pin = TOUCH_PIN_Y2;
- gpio.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(TOUCH_PORT, &gpio);
- TOUCH_PORT->BRR = TOUCH_PIN_Y2;
- delay_ms(1);
- if (TOUCH_PORT->IDR & TOUCH_PIN_X1) {
- return RESET;
- }
- delay_ms(1);
- return TOUCH_PORT->IDR & TOUCH_PIN_X1 ? RESET : SET;
- }
- uint16_t getTouchValue() {
- ADC_SoftwareStartConvCmd(TOUCH_ADC, ENABLE);
- while (ADC_GetFlagStatus(TOUCH_ADC, ADC_FLAG_EOC) == RESET);
- return ADC_GetConversionValue(TOUCH_ADC);
- }
- uint16_t TouchModeReadX() {
- GPIO_InitTypeDef gpio;
- gpio.GPIO_Speed = GPIO_Speed_50MHz;
- gpio.GPIO_Pin = TOUCH_PIN_X1 | TOUCH_PIN_X2;
- gpio.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(TOUCH_PORT, &gpio);
- TOUCH_PORT->BSRR = TOUCH_PIN_X1 | (TOUCH_PIN_X2 << 16);
- gpio.GPIO_Pin = TOUCH_PIN_Y2;
- gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(TOUCH_PORT, &gpio);
- gpio.GPIO_Pin = TOUCH_PIN_Y1;
- gpio.GPIO_Mode = GPIO_Mode_AF_OD;
- GPIO_Init(TOUCH_PORT, &gpio);
- delay_ms(1);
- return getTouchValue();
- }
- uint16_t TouchModeReadY() {
- GPIO_InitTypeDef gpio;
- gpio.GPIO_Speed = GPIO_Speed_50MHz;
- gpio.GPIO_Pin = TOUCH_PIN_Y1 | TOUCH_PIN_Y2;
- gpio.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_Init(TOUCH_PORT, &gpio);
- TOUCH_PORT->BSRR = TOUCH_PIN_Y1 | (TOUCH_PIN_Y2 << 16);
- gpio.GPIO_Pin = TOUCH_PIN_X2;
- gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_Init(TOUCH_PORT, &gpio);
- gpio.GPIO_Pin = TOUCH_PIN_X1;
- gpio.GPIO_Mode = GPIO_Mode_AF_OD;
- GPIO_Init(TOUCH_PORT, &gpio);
- delay_ms(1);
- return getTouchValue();
- }
- uint16_t touchX = 0, touchY = 0;
- uint8_t _touched = 0;
- inline void TouchUpdate() {
- if (!isTouched())
- return;
- _touched = 1;
- touchX = TouchModeReadX();
- touchY = TouchModeReadY();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement