From 74f950d3bfd987f36d6a055899849ee59939decf Mon Sep 17 00:00:00 2001 From: Chris0xdeadbeef Date: Thu, 25 Sep 2025 21:32:22 +0200 Subject: [PATCH 1/3] fix(ArduCAM_Touch.cpp): use uint8_t loop index and prevent division by zero Use uint8_t for loop index to match the `prec` type (byte). Replace i++ with ++i (minor micro-optimization). Add if (prec > 0) check before dividing tx and ty to prevent division by zero. --- ArduCAM_Touch/ArduCAM_Touch.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ArduCAM_Touch/ArduCAM_Touch.cpp b/ArduCAM_Touch/ArduCAM_Touch.cpp index abbe50d3..41615f43 100644 --- a/ArduCAM_Touch/ArduCAM_Touch.cpp +++ b/ArduCAM_Touch/ArduCAM_Touch.cpp @@ -81,7 +81,7 @@ void ArduCAM_Touch::read() digitalWrite(T_CS,LOW); - for (int i=0; i 0) { + TP_X = tx / prec; + TP_Y = ty / prec; + } } bool ArduCAM_Touch::dataAvailable() From 8ea147138d312c7250f5a8a8e1d821efbf493246 Mon Sep 17 00:00:00 2001 From: Chris0xdeadbeef Date: Thu, 25 Sep 2025 21:35:16 +0200 Subject: [PATCH 2/3] refactor(ArduCAM_Touch.cpp): removing space --- ArduCAM_Touch/ArduCAM_Touch.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ArduCAM_Touch/ArduCAM_Touch.cpp b/ArduCAM_Touch/ArduCAM_Touch.cpp index 41615f43..71527727 100644 --- a/ArduCAM_Touch/ArduCAM_Touch.cpp +++ b/ArduCAM_Touch/ArduCAM_Touch.cpp @@ -96,7 +96,7 @@ void ArduCAM_Touch::read() if (prec > 0) { TP_X = tx / prec; TP_Y = ty / prec; - } + } } bool ArduCAM_Touch::dataAvailable() From 61fe1caa51fa5af206f6033ec8008aac016f2b00 Mon Sep 17 00:00:00 2001 From: Chris0xdeadbeef Date: Thu, 25 Sep 2025 21:42:15 +0200 Subject: [PATCH 3/3] fix(ArduCAM_Touch.cpp): use member initializer for prec in constructor Initialize `prec` to 10 in ArduCAM_Touch constructor. Ensures that read() works safely even if setPrecision() is not called. --- ArduCAM_Touch/ArduCAM_Touch.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ArduCAM_Touch/ArduCAM_Touch.cpp b/ArduCAM_Touch/ArduCAM_Touch.cpp index 71527727..57ebce5f 100644 --- a/ArduCAM_Touch/ArduCAM_Touch.cpp +++ b/ArduCAM_Touch/ArduCAM_Touch.cpp @@ -43,11 +43,11 @@ UTFT TP_TFT(LCD_CS); -ArduCAM_Touch::ArduCAM_Touch(byte tcs,byte irq) +ArduCAM_Touch::ArduCAM_Touch(byte tcs,byte irq) : prec(10) { - T_IRQ = irq; - T_CS = tcs; - SPI.begin(); + T_IRQ = irq; + T_CS = tcs; + SPI.begin(); } void ArduCAM_Touch::InitTouch(byte orientation)