chore: Move gt911 touch to generic EXTI driver (#3797)

* Move gt911 touch to generic EXTI driver

* Further cleaning

* chore: further cleaning
This commit is contained in:
3djc
2023-07-14 18:04:54 +10:00
committed by GitHub
parent 6a8141f859
commit 1791bbd354
3 changed files with 27 additions and 41 deletions
@@ -67,6 +67,10 @@
_DEFINE_EXTI_IRQ_HANDLER(EXTI1_IRQ, 1, 1);
#endif
#if defined(USE_EXTI2_IRQ)
_DEFINE_EXTI_IRQ_HANDLER(EXTI2_IRQ, 2, 2);
#endif
#if defined(USE_EXTI9_5_IRQ)
_DEFINE_EXTI_IRQ_HANDLER(EXTI9_5_IRQ, 5, 9);
#endif
@@ -102,6 +106,10 @@ void stm32_exti_enable(uint32_t line, uint8_t trigger, stm32_exti_handler_t cb)
_SET_EXTI_IRQ_HANDLER(EXTI1_IRQ, 1, 1, line_pos, cb);
#endif
#if defined(USE_EXTI2_IRQ)
_SET_EXTI_IRQ_HANDLER(EXTI2_IRQ, 2, 2, line_pos, cb);
#endif
#if defined(USE_EXTI9_5_IRQ)
_SET_EXTI_IRQ_HANDLER(EXTI9_5_IRQ, 5, 9, line_pos, cb);
#endif
@@ -119,6 +127,10 @@ void stm32_exti_disable(uint32_t line)
_CLEAR_EXTI_IRQ_HANDLER(EXTI1_IRQ, 1, 1, line_pos);
#endif
#if defined(USE_EXTI2_IRQ)
_CLEAR_EXTI_IRQ_HANDLER(EXTI2_IRQ, 2, 2, line_pos);
#endif
#if defined(USE_EXTI9_5_IRQ)
_CLEAR_EXTI_IRQ_HANDLER(EXTI9_5_IRQ, 5, 9, line_pos);
#endif
+5 -8
View File
@@ -771,17 +771,14 @@
#else
#define TOUCH_RST_GPIO_PIN LL_GPIO_PIN_10 // PF.10
#endif
#define TOUCH_INT_EXTI_LINE1 EXTI_Line2
#define TOUCH_INT_EXTI_IRQn1 EXTI2_IRQn
#define TOUCH_INT_EXTI_IRQHandler1 EXTI2_IRQHandler
#define TOUCH_INT_EXTI_PortSource EXTI_PortSourceGPIOH
#define TOUCH_INT_EXTI_PinSource1 EXTI_PinSource2
#define TOUCH_INT_EXTI_Line LL_EXTI_LINE_2
#define TOUCH_INT_EXTI_Port LL_SYSCFG_EXTI_PORTH
#define TOUCH_INT_EXTI_SysCfgLine LL_SYSCFG_EXTI_LINE2
#define TOUCH_INT_EXTI_IRQn EXTI2_IRQn
#define TOUCH_INT_EXTI_IRQHandler EXTI2_IRQHandler
// TOUCH_INT_EXTI IRQ
#if !defined(USE_EXTI2_IRQ)
#define USE_EXTI2_IRQ
#define EXTI2_IRQ_Priority 9
#endif
#if defined(PCBX12S)
#define TOUCH_PANEL_INVERTED
+10 -33
View File
@@ -23,6 +23,7 @@
#include "stm32_hal.h"
#include "stm32_i2c_driver.h"
#include "stm32_gpio_driver.h"
#include "stm32_exti_driver.h"
#include "hal.h"
#include "tp_gt911.h"
@@ -440,18 +441,14 @@ static short tapCount = 0;
static TouchState internalTouchState = {};
static void _gt911_exti_isr(void)
{
touchEventOccured = true;
}
static void TOUCH_AF_ExtiStop(void)
{
LL_EXTI_InitTypeDef extiInit;
LL_EXTI_StructInit(&extiInit);
extiInit.Line_0_31 = TOUCH_INT_EXTI_Line;
extiInit.Mode = LL_EXTI_MODE_IT;
extiInit.Trigger = LL_EXTI_TRIGGER_RISING;
extiInit.LineCommand = DISABLE;
LL_EXTI_Init(&extiInit);
NVIC_DisableIRQ(TOUCH_INT_EXTI_IRQn);
stm32_exti_disable(TOUCH_INT_EXTI_Line);
}
static void TOUCH_AF_ExtiConfig(void)
@@ -459,17 +456,9 @@ static void TOUCH_AF_ExtiConfig(void)
__HAL_RCC_SYSCFG_CLK_ENABLE();
LL_SYSCFG_SetEXTISource(TOUCH_INT_EXTI_Port, TOUCH_INT_EXTI_SysCfgLine);
LL_EXTI_InitTypeDef extiInit;
LL_EXTI_StructInit(&extiInit);
extiInit.Line_0_31 = TOUCH_INT_EXTI_Line;
extiInit.Mode = LL_EXTI_MODE_IT;
extiInit.Trigger = LL_EXTI_TRIGGER_RISING;
extiInit.LineCommand = ENABLE;
LL_EXTI_Init(&extiInit);
NVIC_SetPriority(TOUCH_INT_EXTI_IRQn, 9);
NVIC_EnableIRQ(TOUCH_INT_EXTI_IRQn);
stm32_exti_enable(TOUCH_INT_EXTI_Line,
LL_EXTI_TRIGGER_RISING,
_gt911_exti_isr);
}
static void TOUCH_AF_GPIOConfig(void)
@@ -799,18 +788,6 @@ struct TouchState touchPanelRead()
return internalTouchState;
}
#if !defined(TOUCH_INT_EXTI_IRQHandler)
#error "TOUCH_INT_EXTI_IRQHandler is not defined"
#endif
extern "C" void TOUCH_INT_EXTI_IRQHandler(void)
{
if (LL_EXTI_IsEnabledIT_0_31(TOUCH_INT_EXTI_Line) &&
LL_EXTI_IsActiveFlag_0_31(TOUCH_INT_EXTI_Line)) {
touchEventOccured = true;
LL_EXTI_ClearFlag_0_31(TOUCH_INT_EXTI_Line);
}
}
bool touchPanelEventOccured()
{
return touchEventOccured;