Test program for BaseMachineUIController Library
Dependencies: AverageAnalogIn BaseMachineUIController ExioBufferdController MCP23S17 PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD AT24C1024
Diff: main.cpp
- 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 } }