Test program for MCP23S17

Dependencies:   ExioController MCP23S17 mbed-rtos mbed

Revision:
9:01dfe4fe7d21
Parent:
8:5a1b267eae1d
Child:
10:72220f282a8d
--- a/main.cpp	Wed Nov 02 06:13:07 2016 +0000
+++ b/main.cpp	Wed Nov 02 09:15:27 2016 +0000
@@ -4,6 +4,7 @@
 #include "ExioMcp23s17DigitalIn.h"
 #include "ExioMcp23s17PinDetect.h"
 #include "ExioMcp23s17RotaryEncoder.h"
+#include "ExioMcp23s17Keypad4x4.h"
 
 SPI Spi(PC_12, PC_11, PC_10); // SPI3: mosi, miso, sclk
 //SPI Spi(PA_7, PA_6, PA_5); // SPI1:  mosi, miso, sclk
@@ -43,7 +44,7 @@
     }
 }
 */
-
+/*
 void ExioMcp23s17RevTest()
 {
     printf("\r\n\n*** ExioMcp23s17 Rev ***\r\n");
@@ -74,7 +75,7 @@
         Exio.writePort(ExioPortB, data);
     }
 }
-
+*/
 /*
 void ExioMcp23s17DigitalInTest()
 {
@@ -351,12 +352,42 @@
     }
 }
 */
+
+void ExioMcp23s17Keypad4x4Test()
+{
+    printf("\r\n\n*** ExioMcp23s17Keypad4x4 test ***\r\n");
+    
+    Exio.reset();
+    
+    // set PORTB as output
+    Exio.ioDirection(ExioPortB, 0x00);
+    
+    // LED Check (PortB)
+    for (int i = 0; i < 8; i++) {
+        Exio.writePort(ExioPortB, 1 << i);
+        wait(0.2);
+    }
+    Exio.writePort(ExioPortB, 0x00);
+    
+    // set PORTA as Keypad 4x4
+    ExioMcp23s17Keypad4x4 keypad(Exio, ExioPortA);
+    
+    while (true) {
+        int v = keypad.keyScan();
+        //printf("%d\r\n", v);
+        if (v != -1) {
+            Exio.writePort(ExioPortB, v);
+        }
+    }
+}
+
 int main()
 {
     //ExioMcp23s17Test();
-    ExioMcp23s17RevTest();
+    //ExioMcp23s17RevTest();
     //ExioMcp23s17DigitalInTest();
     //ExioMcp23s17PinDetectTest();
     //ExioMcp23s17PinDetectPullModeTest();
     //ExioMcp23s17RotaryEncoderTest();
+    ExioMcp23s17Keypad4x4Test();
 }