Ryo Od / Mbed 2 deprecated ExioController_Test

Dependencies:   ExioController MCP23S17 mbed-rtos mbed

Revision:
6:4f9d08f8dfcf
Parent:
5:69ea7aa2a755
Child:
7:6c63d0f70ebc
--- a/main.cpp	Wed Nov 02 03:03:47 2016 +0000
+++ b/main.cpp	Wed Nov 02 04:17:04 2016 +0000
@@ -3,6 +3,7 @@
 #include "ExioMcp23s17.h"
 #include "ExioMcp23s17DigitalIn.h"
 #include "ExioMcp23s17PinDetect.h"
+#include "ExioMcp23s17RotaryEncoder.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
@@ -96,6 +97,7 @@
 }
 */
 
+/*
 // トグル動作
 bool pb0state = false;
 void pb0Falled() {
@@ -136,6 +138,8 @@
 void pb7Falled() {
     Exio.writePort(ExioPortA, (1 << 7));
 }
+*/
+
 /*
 void ExioMcp23s17PinDetectTest()
 {
@@ -202,6 +206,7 @@
 }
 */
 
+/*
 void ExioMcp23s17PinDetectPullModeTest()
 {
     printf("\r\n\n*** ExioMcp23s17PinDetect PullMode test ***\r\n");
@@ -272,11 +277,44 @@
     while (true) {
     }
 }
+*/
+
+void ExioMcp23s17RotaryEncoderTest()
+{
+    printf("\r\n\n*** ExioMcp23s17RotaryEncoder test ***\r\n");
+    
+    Exio.reset();
+    
+    // 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);
+    }
+    Exio.writePort(ExioPortA, 0x00);
+    
+    while (true) {
+        int data = RotEnc1.getVal();
+        //Exio.writePort(ExioPortA, data);
+        printf("%d\r\n", data);
+        Thread::wait(100);
+    }
+}
 
 int main()
 {
     //ExioMcp23s17Test();
     //ExioMcp23s17DigitalInTest();
     //ExioMcp23s17PinDetectTest();
-    ExioMcp23s17PinDetectPullModeTest();
+    //ExioMcp23s17PinDetectPullModeTest();
+    ExioMcp23s17RotaryEncoderTest();
 }