diff --git a/bsp/stm32f10x/touch.c b/bsp/stm32f10x/touch.c index 397f94a2f45eec4ff8a0f3c9425401b6adb30379..a2d88da9b586065fc316af57a0d3da634ceabd8b 100644 --- a/bsp/stm32f10x/touch.c +++ b/bsp/stm32f10x/touch.c @@ -171,6 +171,17 @@ static void rtgui_touch_calculate() { touch->y = (touch->min_y - touch->y) * Y_WIDTH /(touch->min_y - touch->max_y); } + + // normalize the data + if (touch->x & 0x8000) + touch->x = 0; + else if (touch->x > X_WIDTH) + touch->x = X_WIDTH - 1; + + if (touch->y & 0x8000) + touch->y = 0; + else if (touch->y > Y_WIDTH) + touch->y = Y_WIDTH - 1; } } }