TM1638 LED controller. Max 80 LEDs, Max 24 Key scan. Supports LED&KEY, QYF-TM1638 and JY-LKM1638 module.

Dependents:   mbed_TM1638 Otjimaniya RL0201-V1

See here for more information.

Revision:
1:1f2453ed85d7
Parent:
0:201dfacbe0e5
Child:
2:532ce15ea9ec
--- a/TM1638.h	Mon Dec 21 22:39:22 2015 +0000
+++ b/TM1638.h	Sat Jan 09 14:30:43 2016 +0000
@@ -35,7 +35,7 @@
  * DisplayData_t size is 16 bytes (8 grids @ 10 segments)
  * TM1638::DisplayData_t all_str  = {0xFF,0x3F, 0xFF,0x3F, 0xFF,0x3F, 0xFF,0x3F, 0xFF,0x3F, 0xFF,0x3F, 0xFF,0x3F, 0xFF,0x3F};  
  *
- * // KeyData_t size is 5 bytes  
+ * // KeyData_t size is 4 bytes  
  * TM1638::KeyData_t keydata; 
  *
  * // TM1638 declaration
@@ -54,7 +54,7 @@
  *    if (TM1638.getKeys(&keydata)) {
  *      pc.printf("Keydata 0..3 = 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3]);
  *
- *      if (keydata[0] == 0x10) { //sw2   
+ *      if (keydata[0] == 0x01) { //sw1   
  *        TM1638.cls(); 
  *        TM1638.writeData(all_str);
  *      }  
@@ -203,9 +203,27 @@
 
 #define LEDKEY8_NR_GRIDS  8
 #define LEDKEY8_NR_DIGITS 8
-#define LEDKEY8_DIG1_IDX  1
 #define LEDKEY8_NR_UDC    8
 
+//Access to 8 Switches
+#define LEDKEY8_SW1_IDX   0
+#define LEDKEY8_SW1_BIT   0x01
+#define LEDKEY8_SW2_IDX   1
+#define LEDKEY8_SW2_BIT   0x01
+#define LEDKEY8_SW3_IDX   2
+#define LEDKEY8_SW3_BIT   0x01
+#define LEDKEY8_SW4_IDX   3
+#define LEDKEY8_SW4_BIT   0x01
+
+#define LEDKEY8_SW5_IDX   0
+#define LEDKEY8_SW5_BIT   0x10
+#define LEDKEY8_SW6_IDX   1
+#define LEDKEY8_SW6_BIT   0x10
+#define LEDKEY8_SW7_IDX   2
+#define LEDKEY8_SW7_BIT   0x10
+#define LEDKEY8_SW8_IDX   3
+#define LEDKEY8_SW8_BIT   0x10
+
 /** Constructor for class for driving TM1638 controller as used in LEDKEY8
   *
   *  @brief Supports 8 Digits of 7 Segments + DP + LED Icons, Also supports a scanned keyboard of 8 keys.
@@ -216,7 +234,7 @@
  public:
 
   /** Enums for Icons */
-  //  Grid encoded in 8 MSBs, Icon pattern encoded in 24 LSBs
+  //  Grid encoded in 8 MSBs, Icon pattern encoded in 16 LSBs
   enum Icon {
     LD1  = (1<<24) | S7_LD1,
     LD2  = (2<<24) | S7_LD2,
@@ -275,14 +293,14 @@
 
     /** Set Icon
      *
-     * @param Icon icon Enums Icon has Grid position encoded in 8 MSBs, Icon pattern encoded in 24 LSBs
+     * @param Icon icon Enums Icon has Grid position encoded in 8 MSBs, Icon pattern encoded in 16 LSBs
      * @return none
      */
     void setIcon(Icon icon);
 
     /** Clr Icon
      *
-     * @param Icon icon Enums Icon has Grid position encoded in 8 MSBs, Icon pattern encoded in 24 LSBs
+     * @param Icon icon Enums Icon has Grid position encoded in 8 MSBs, Icon pattern encoded in 16 LSBs
      * @return none
      */
     void clrIcon(Icon icon);