Test program for MCP23S17

Dependencies:   ExioController MCP23S17 mbed-rtos mbed

Revision:
7:6c63d0f70ebc
Parent:
6:4f9d08f8dfcf
Child:
8:5a1b267eae1d
--- a/main.cpp	Wed Nov 02 04:17:04 2016 +0000
+++ b/main.cpp	Wed Nov 02 05:24:53 2016 +0000
@@ -288,25 +288,33 @@
     // set PORTA as output
     Exio.ioDirection(ExioPortA, 0x00);
     
-    // set PORTB[0..1] as RotaryEncoder
-    ExioMcp23s17DigitalIn inB0(Exio, ExioPortB, 0);
-    ExioMcp23s17DigitalIn inB1(Exio, ExioPortB, 1);
-
-    //RotaryEncoder::RotaryEncoder(ExioMcp23s17DigitalIn& _pin1, ExioMcp23s17DigitalIn& _pin2, int min, int max, int val)
-    ExioMcp23s17RotaryEncoder RotEnc1(inB0, inB1, 0, 100);
-    
     // LED Check (PortA)
     for (int i = 0; i < 8; i++) {
         Exio.writePort(ExioPortA, 1 << i);
-        wait(0.1);
+        wait(0.2);
     }
     Exio.writePort(ExioPortA, 0x00);
+
+    // set PORTB[0..1] as RotaryEncoder
+    /*
+        ExioMcp23s17RotaryEncoder(
+        ExioMcp23s17& device, ExioPort port, int pin1, int pin2,
+        int min = 0, int max = 100, int val = 50
+    );
+    */
+    ExioMcp23s17RotaryEncoder RotEnc1(Exio, ExioPortB, 0, 1, 0, 0x0f, 0);
+    
+    // set PORTB[2..3] as RotaryEncoder
+    //RotaryEncoder::RotaryEncoder(ExioMcp23s17DigitalIn& _pin1, ExioMcp23s17DigitalIn& _pin2, int min, int max, int val)
+    ExioMcp23s17RotaryEncoder RotEnc2(Exio, ExioPortB, 2, 3, 0, 0x0f, 0);
     
     while (true) {
-        int data = RotEnc1.getVal();
-        //Exio.writePort(ExioPortA, data);
-        printf("%d\r\n", data);
-        Thread::wait(100);
+        int v1 = RotEnc1.getVal();
+        int v2 = RotEnc2.getVal();
+        uint8_t data = ((uint8_t)v2 << 4) | (uint8_t)v1;
+        Exio.writePort(ExioPortA, data);
+        //printf("%d %d\r\n", v1, v2);
+        Thread::wait(10);
     }
 }