Test program for BaseMachineUIController Library

Dependencies:   AverageAnalogIn BaseMachineUIController ExioBufferdController MCP23S17 PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD AT24C1024

Revision:
4:f79bf2806617
Parent:
3:97e89dad2a44
Child:
5:7f49c9ca7c04
--- a/main.cpp	Mon Nov 07 00:32:22 2016 +0000
+++ b/main.cpp	Wed Nov 09 09:08:33 2016 +0000
@@ -13,12 +13,18 @@
 
 #define UART_TRACE  (1)
 #include "BaseMachineUIController.h"
+#include "ExioInBuffer.h"
+#include "ExioBufferedDebounceIn.h"
 #include "Sequence.h"
 
 const int samplingRate = 1;
 
 BaseMachineUIController UIController;
 
+SPI Spi(PC_12, PC_11, PC_10); // SPI3: mosi, miso, sclk
+// MExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs, PinName nReset);
+ExioMcp23s17 Exio(0x00, Spi, PD_2, PA_13);
+
 uint8_t step = 0;
 int isStepChanged = false;
 bool isRunning = false;
@@ -56,6 +62,29 @@
     
     UIController.init();
     
+    // Reset MCP23S17 (初期化時にreset()が必要)
+    Exio.reset();
+ 
+    ExioInBuffer exioInBufferA(&Exio, ExioPortA);
+    ExioInBuffer exioInBufferB(&Exio, ExioPortB);
+  
+    ExioBufferedDebounceIn inB[] = {
+        ExioBufferedDebounceIn(&exioInBufferB, 0),
+        ExioBufferedDebounceIn(&exioInBufferB, 1),
+        ExioBufferedDebounceIn(&exioInBufferB, 2),
+        ExioBufferedDebounceIn(&exioInBufferB, 3),
+        ExioBufferedDebounceIn(&exioInBufferB, 4),
+        ExioBufferedDebounceIn(&exioInBufferB, 5),
+        ExioBufferedDebounceIn(&exioInBufferB, 6),
+        ExioBufferedDebounceIn(&exioInBufferB, 7)
+    };
+    
+    exioInBufferA.run(10);
+    exioInBufferB.run(10);
+    for (int i = 0; i < 8; i++) {
+        inB[i].set_debounce_us(10000);
+    }
+        
     RtosTimer stepTimer(stepUp, osTimerPeriodic, (void *)0);
     stepTimer.start(samplingRate);
     setNoteLen();
@@ -82,6 +111,8 @@
         
         int accentLevel = UIController.getAccentLevel();
         
+        uint8_t va = exioInBufferA.readPort();
+        
         #if (UART_TRACE)
         printf("%d %d ", osc.waveShape, osc.pulseWidth); 
         printf("%d %d ", flt.cutoff, flt.resonance); 
@@ -97,6 +128,12 @@
                 (sequences[i].getFrequency10()) >> 16
             );
         }
+        printf("Exio PortA: %d\r\n", va);
+        for (int i = 0; i < 8; i++) {
+            int vb = inB[i].read();
+            printf("%d ", vb);
+        }
+        printf("\r\n");
         #endif
     }
 }