KSM edits to RA8875

Dependents:   Liz_Test_Code

Revision:
154:ad2450fc3dc3
Parent:
150:35a4db3081c1
Child:
155:b3f225ae572c
--- a/RA8875_Touch.cpp	Sun Jul 29 00:32:51 2018 +0000
+++ b/RA8875_Touch.cpp	Fri Aug 17 01:29:06 2018 +0000
@@ -8,6 +8,41 @@
 #define NOTOUCH_TIMEOUT_uS 100000
 #define TOUCH_TICKER_uS      1000
 
+//#define DEBUG "TUCH"
+// ...
+// INFO("Stuff to show %d", var); // new-line is automatically appended
+//
+#if (defined(DEBUG) && !defined(TARGET_LPC11U24))
+#define INFO(x, ...) std::printf("[INF %s %4d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
+#define WARN(x, ...) std::printf("[WRN %s %4d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
+#define ERR(x, ...)  std::printf("[ERR %s %4d] "x"\r\n", DEBUG, __LINE__, ##__VA_ARGS__);
+static void HexDump(const char * title, const uint8_t * p, int count)
+{
+    int i;
+    char buf[100] = "0000: ";
+
+    if (*title)
+        INFO("%s", title);
+    for (i=0; i<count; ) {
+        sprintf(buf + strlen(buf), "%02X ", *(p+i));
+        if ((++i & 0x0F) == 0x00) {
+            INFO("%s", buf);
+            if (i < count)
+                sprintf(buf, "%04X: ", i);
+            else
+                buf[0] = '\0';
+        }
+    }
+    if (strlen(buf))
+        INFO("%s", buf);
+}
+#else
+#define INFO(x, ...)
+#define WARN(x, ...)
+#define ERR(x, ...)
+#define HexDump(a, b, c)
+#endif
+
 
 // Translate from FT5206 Event Flag to Touch Code to API-match the
 // alternate resistive touch screen driver common in the RA8875
@@ -36,7 +71,7 @@
         touchSample = 0;
         touchState = no_cal;
         //touchTicker.attach_us(callback(this, &RA8875::_TouchTicker), TOUCH_TICKER_uS);
-        #if MBED_LIBRARY_VERSION > 122   // Is this the right version?
+        #if (MBED_MAJOR_VERSION >= 5) || (MBED_LIBRARY_VERSION > 122)   // Is this the right version?
         touchTicker.attach_us(callback(this, &RA8875::_TouchTicker), TOUCH_TICKER_uS);
         #else
         touchTicker.attach_us(this, &RA8875::_TouchTicker, TOUCH_TICKER_uS);
@@ -74,7 +109,7 @@
         touchState = no_cal;
         if (bTpEnable == TP_ENABLE) {
             //touchTicker.attach_us(callback(this, &RA8875::_TouchTicker), TOUCH_TICKER_uS);
-            #if MBED_LIBRARY_VERSION > 122   // Is this the right version?
+            #if (MBED_MAJOR_VERSION >= 5) || (MBED_LIBRARY_VERSION > 122)   // Is this the right version?
             touchTicker.attach_us(callback(this, &RA8875::_TouchTicker), TOUCH_TICKER_uS);
             #else
             touchTicker.attach_us(this, &RA8875::_TouchTicker, TOUCH_TICKER_uS);
@@ -353,13 +388,17 @@
 
 TouchCode_t RA8875::TouchPanelA2DRaw(int *x, int *y)
 {
+    INFO("A2Raw");
     if( (ReadCommand(INTC2) & RA8875_INT_TP) ) {        // Test for TP Interrupt pending in register INTC2
+        INFO("Int pending");
         touchTimer.reset();
         *y = ReadCommand(TPYH) << 2 | ( (ReadCommand(TPXYL) & 0xC) >> 2 );   // D[9:2] from reg TPYH, D[1:0] from reg TPXYL[3:2]
         *x = ReadCommand(TPXH) << 2 | ( (ReadCommand(TPXYL) & 0x3)      );   // D[9:2] from reg TPXH, D[1:0] from reg TPXYL[1:0]
+        INFO("(x,y) = (%d,%d)", x, y);
         WriteCommand(INTC2, RA8875_INT_TP);            // reg INTC2: Clear that TP interrupt flag
         touchState = touch;
     } else {
+        INFO("no touch");
         touchState = no_touch;
     }
     return touchState;