Test program for MCP23S17

Dependencies:   ExioController MCP23S17 mbed-rtos mbed

Revision:
5:69ea7aa2a755
Parent:
3:3638468099de
Child:
6:4f9d08f8dfcf
--- a/main.cpp	Sun Oct 30 17:13:35 2016 +0000
+++ b/main.cpp	Wed Nov 02 03:03:47 2016 +0000
@@ -136,7 +136,7 @@
 void pb7Falled() {
     Exio.writePort(ExioPortA, (1 << 7));
 }
-
+/*
 void ExioMcp23s17PinDetectTest()
 {
     printf("\r\n\n*** ExioMcp23s17PinDetect test ***\r\n");
@@ -200,10 +200,83 @@
     while (true) {
     }
 }
+*/
+
+void ExioMcp23s17PinDetectPullModeTest()
+{
+    printf("\r\n\n*** ExioMcp23s17PinDetect PullMode test ***\r\n");
+    
+    Exio.reset();
+    
+    // set PORTA as output
+    Exio.ioDirection(ExioPortA, 0x00);
+    
+    // create PORTB pins as inputs via ExioMcp23s17PinDetect
+    ExioMcp23s17PinDetect PinB0(Exio, ExioPortB, 0, PullUp);
+    ExioMcp23s17PinDetect PinB1(Exio, ExioPortB, 1, PullNone);
+    ExioMcp23s17PinDetect PinB2(Exio, ExioPortB, 2, PullUp);
+    ExioMcp23s17PinDetect PinB3(Exio, ExioPortB, 3, PullNone);
+    ExioMcp23s17PinDetect PinB4(Exio, ExioPortB, 4, PullUp);
+    ExioMcp23s17PinDetect PinB5(Exio, ExioPortB, 5, PullNone);
+    ExioMcp23s17PinDetect PinB6(Exio, ExioPortB, 6, PullUp);
+    ExioMcp23s17PinDetect PinB7(Exio, ExioPortB, 7, PullNone);
+    
+    PinB1.mode(PullUp);
+    PinB3.mode(PullUp);
+    PinB5.mode(PullUp);
+    PinB7.mode(PullUp);
+
+    //PinB7.mode(PullDown);
+
+    // assign callback functions
+    PinB0.attach_asserted(&pb0Falled);
+    PinB0.setAssertValue(0);
+    PinB0.setSampleFrequency();
+    
+    PinB1.attach_asserted(&pb1Falled);
+    PinB1.setAssertValue(0);
+    PinB1.setSampleFrequency();
+    
+    PinB2.attach_asserted(&pb2Falled);
+    PinB2.setAssertValue(0);
+    PinB2.setSampleFrequency();
+    
+    PinB3.attach_asserted(&pb3Falled);
+    PinB3.setAssertValue(0);
+    PinB3.setSampleFrequency();
+    
+    PinB4.attach_asserted(&pb4Falled);
+    PinB4.setAssertValue(0);
+    PinB4.setSampleFrequency();
+    
+    PinB5.attach_asserted(&pb5Falled);
+    PinB5.setAssertValue(0);
+    PinB5.setSampleFrequency();
+    
+    PinB6.attach_asserted(&pb6Falled);
+    PinB6.setAssertValue(0);
+    PinB6.setSampleFrequency();
+    
+    PinB7.attach_asserted(&pb7Falled);
+    PinB7.setAssertValue(0);
+    PinB7.setSampleFrequency();
+    
+
+    // LED Check (PortA)
+    for (int i = 0; i < 8; i++) {
+        Exio.writePort(ExioPortA, 1 << i);
+        wait(0.1);
+    }
+    Exio.writePort(ExioPortA, 0x00);
+    
+    while (true) {
+    }
+}
 
 int main()
 {
     //ExioMcp23s17Test();
     //ExioMcp23s17DigitalInTest();
-    ExioMcp23s17PinDetectTest();
+    //ExioMcp23s17PinDetectTest();
+    ExioMcp23s17PinDetectPullModeTest();
 }