Azoteq IQS624 Serial Terminal Display Class

Dependents:   IQS624_HelloWorld Nucleo_ACM1602_I2C_DC_Angle

Library: IQSDisplayTerminal

Library for formatted display of IQS624 registers on a serial terminal

Screen Capture

Below is a screen capture of formatted output on a serial terminal program.
Note that over a million frames were captured with zero I2C errors. /media/uploads/AzqDev/iqs624-display-screencap-1m.gif

IQS624 Summary

Ultra low power I2C sensor for 2D Magnetic Angle, Capacitive touch and Inductive Proximity

IQS624 mbed Component Link

Components / IQS624
Ultra low power sensor for rotating magnetic field, capacitive touch, and inductive proximity. Empowers next-generation user interfaces.


IQS624 Pinout

/media/uploads/AzqDev/iqs624-pinout-s3.gif

/media/uploads/AzqDev/iqs624-and-lpc1768-tiny.gif

IQS624 Connected to mbed LPC1768 board. The five wires are power(2), I2C(2) and RDY(1).

IQS624 Data Sheet

Azoteq IQS624 Data sheet & Evaluation Kit Information: http://bit.ly/IQS624_ds



IQS624 YouTube Link

IQS624 1-minute YouTube video: http://bit.ly/IQS624Video

Revision:
10:d4f2c7c2bd82
Parent:
9:9fed1ba5abab
Child:
11:5200ac4ee76e
--- a/IQSdisplayTerminal.cpp	Fri May 12 05:42:35 2017 +0000
+++ b/IQSdisplayTerminal.cpp	Sat May 13 00:55:45 2017 +0000
@@ -39,25 +39,39 @@
 void IQS62xDisplay::showStatus(int I2Cspeed, int I2CErrorCount) {
     frameCounter++;
     puts("\x1b[H"); // ANSI/VT100 command for cursor home
-    printf("\t\t\t"); 
+    printf("\t\t"); 
     printf("\t IQS624 Register Display\r\n\r\n"); // heading
     printf("\t Frame number %06d", frameCounter);
     printf("\t I2C Speed %dk", I2Cspeed/1000);
     printf("\t I2C Errors %d", I2CErrorCount);
 }
 
+// dump one line of text from the buffer with VT100 color formatting    
+void IQS62xDisplay::showLine(char * buffer, char * color, int startbyte, int endbyte) {
+  for (int i=startbyte; i<=endbyte; i++) {
+        if ( color == NULL || color[i] == 0 )
+          printf("%02x ", buffer[i]);
+        else
+        #define USE_IQS_COLOR_DISPLAY
+        #ifndef DONT_USE_IQS_COLOR_DISPLAY        
+          printf("\x1b[32m%02x\x1b[30m ", buffer[i]); // print out in green (ANSI VT100 code)
+        #else
+          printf("%02x ", buffer[i]); // print out in black & white
+        #endif
+      }
+ }
+
 // formatted hex display of IQS62x registers
-void IQS62xDisplay::showRegisters(char * buffer) {
-    #define ShowLine(FROM,TO) for(int j=(FROM);j<=(TO);j++)printf("%02x ",buffer[j])
-    printf("\r\n\r\n  Device ID (43) [00] "); ShowLine(0x00,0x0f);
-    printf("\r\n\r\n    System Flags [10] "); ShowLine(0x10,0x1f);
-    printf("\r\n\r\n        Counters [20] "); ShowLine(0x20,0x2f);
-    printf("\r\n\r\n        Averages [30] "); ShowLine(0x30,0x3f);
-    printf("\r\n\r\n     Touch Setup [40] "); ShowLine(0x40,0x4f);
-    printf("\r\n\r\n Touch Threshold [50] "); ShowLine(0x50,0x5f);
-    printf("\r\n\r\n Small Usr Setup [60] "); ShowLine(0x60,0x6f);
-    printf("\r\n\r\n   Hall Settings [70] "); ShowLine(0x70,0x7f);
-    printf("\r\n\r\n    Wheel Values [80] "); ShowLine(0x80,0x8f);
-    printf("\r\n\r\n    System Setup [d0] "); ShowLine(0xd0,0xdf);
+void IQS62xDisplay::showRegisters(char * buffer, char* color) {
+    printf("\r\n\r\n  Device ID (43) [00] "); showLine(buffer,color,0x00,0x0f);
+    printf("\r\n\r\n    System Flags [10] "); showLine(buffer,color,0x10,0x1f);
+    printf("\r\n\r\n        Counters [20] "); showLine(buffer,color,0x20,0x2f);
+    printf("\r\n\r\n        Averages [30] "); showLine(buffer,color,0x30,0x3f);
+    printf("\r\n\r\n     Touch Setup [40] "); showLine(buffer,color,0x40,0x4f);
+    printf("\r\n\r\n Touch Threshold [50] "); showLine(buffer,color,0x50,0x5f);
+    printf("\r\n\r\n Small Usr Setup [60] "); showLine(buffer,color,0x60,0x6f);
+    printf("\r\n\r\n   Hall Settings [70] "); showLine(buffer,color,0x70,0x7f);
+    printf("\r\n\r\n    Wheel Values [80] "); showLine(buffer,color,0x80,0x8f);
+    printf("\r\n\r\n    System Setup [d0] "); showLine(buffer,color,0xd0,0xdf);
     printf("\r\n\r\n");
 }
\ No newline at end of file