Buffered Test

Dependencies:   ExioBufferdController MCP23S17 mbed-rtos mbed

Committer:
ryood
Date:
Fri Nov 04 22:38:54 2016 +0000
Revision:
6:9acaeb5465d2
Parent:
5:526691f54026
Child:
7:7a17d81db52f
Test ExioBufferedRotaryEncoder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:7578a6b316b7 1 /*
ryood 0:7578a6b316b7 2 * ExioBufferdController Test
ryood 0:7578a6b316b7 3 *
ryood 0:7578a6b316b7 4 * mbed: revison 121
ryood 0:7578a6b316b7 5 * mbed-rtos: revision 117
ryood 0:7578a6b316b7 6 *
ryood 0:7578a6b316b7 7 * Created: 2016.11.05
ryood 0:7578a6b316b7 8 *
ryood 0:7578a6b316b7 9 */
ryood 0:7578a6b316b7 10
ryood 0:7578a6b316b7 11 #include "mbed.h"
ryood 0:7578a6b316b7 12 #include "rtos.h"
ryood 0:7578a6b316b7 13
ryood 0:7578a6b316b7 14 #include "ExioMcp23s17.h"
ryood 0:7578a6b316b7 15 #include "ExioInBuffer.h"
ryood 3:ee7fd89f2539 16 #include "ExioBufferedIn.h"
ryood 6:9acaeb5465d2 17 #include "ExioBufferedDebounceIn.h"
ryood 5:526691f54026 18 #include "ExioBufferedRotaryEncoder.h"
ryood 0:7578a6b316b7 19
ryood 0:7578a6b316b7 20 SPI Spi(PC_12, PC_11, PC_10); // SPI3: mosi, miso, sclk
ryood 0:7578a6b316b7 21 //SPI Spi(PA_7, PA_6, PA_5); // SPI1: mosi, miso, sclk
ryood 0:7578a6b316b7 22
ryood 0:7578a6b316b7 23 // MExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs, PinName nReset);
ryood 0:7578a6b316b7 24 ExioMcp23s17 Exio(0x00, Spi, PD_2, PA_13);
ryood 0:7578a6b316b7 25
ryood 0:7578a6b316b7 26 void testExioInBuffer()
ryood 0:7578a6b316b7 27 {
ryood 0:7578a6b316b7 28 printf("*** Test ExioInBuffer ***\r\n");
ryood 0:7578a6b316b7 29
ryood 2:0a339555ddf6 30 // Reset MCP23S17 (初期化時にreset()が必要)
ryood 0:7578a6b316b7 31 Exio.reset();
ryood 0:7578a6b316b7 32
ryood 3:ee7fd89f2539 33 ExioInBuffer exioInBufferA(&Exio, ExioPortA);
ryood 3:ee7fd89f2539 34 ExioInBuffer exioInBufferB(&Exio, ExioPortB);
ryood 0:7578a6b316b7 35
ryood 3:ee7fd89f2539 36 exioInBufferA.run(1);
ryood 3:ee7fd89f2539 37 exioInBufferB.run(1);
ryood 0:7578a6b316b7 38
ryood 0:7578a6b316b7 39 while (true) {
ryood 2:0a339555ddf6 40 uint8_t va = exioInBufferA.readPort();
ryood 2:0a339555ddf6 41 uint8_t vb = exioInBufferB.readPort();
ryood 2:0a339555ddf6 42
ryood 2:0a339555ddf6 43 printf("%d %d\r\n", va, vb);
ryood 0:7578a6b316b7 44 //Thread::wait(10);
ryood 0:7578a6b316b7 45 }
ryood 0:7578a6b316b7 46 }
ryood 4:20ee7612edb9 47
ryood 3:ee7fd89f2539 48 void testExioBufferedIn()
ryood 3:ee7fd89f2539 49 {
ryood 3:ee7fd89f2539 50 printf("*** Test ExioBuffedIn ***\r\n");
ryood 3:ee7fd89f2539 51
ryood 3:ee7fd89f2539 52 // Reset MCP23S17 (初期化時にreset()が必要)
ryood 3:ee7fd89f2539 53 Exio.reset();
ryood 3:ee7fd89f2539 54
ryood 4:20ee7612edb9 55 ExioInBuffer inBufferA(&Exio, ExioPortA);
ryood 4:20ee7612edb9 56 ExioBufferedIn inA[] = {
ryood 4:20ee7612edb9 57 ExioBufferedIn(&inBufferA, 0),
ryood 4:20ee7612edb9 58 ExioBufferedIn(&inBufferA, 1),
ryood 4:20ee7612edb9 59 ExioBufferedIn(&inBufferA, 2),
ryood 4:20ee7612edb9 60 ExioBufferedIn(&inBufferA, 3),
ryood 4:20ee7612edb9 61 ExioBufferedIn(&inBufferA, 4),
ryood 4:20ee7612edb9 62 ExioBufferedIn(&inBufferA, 5),
ryood 4:20ee7612edb9 63 ExioBufferedIn(&inBufferA, 6),
ryood 4:20ee7612edb9 64 ExioBufferedIn(&inBufferA, 7)
ryood 4:20ee7612edb9 65 };
ryood 4:20ee7612edb9 66
ryood 4:20ee7612edb9 67 ExioInBuffer inBufferB(&Exio, ExioPortB);
ryood 3:ee7fd89f2539 68 ExioBufferedIn inB[] = {
ryood 3:ee7fd89f2539 69 ExioBufferedIn(&inBufferB, 0),
ryood 3:ee7fd89f2539 70 ExioBufferedIn(&inBufferB, 1),
ryood 3:ee7fd89f2539 71 ExioBufferedIn(&inBufferB, 2),
ryood 3:ee7fd89f2539 72 ExioBufferedIn(&inBufferB, 3),
ryood 3:ee7fd89f2539 73 ExioBufferedIn(&inBufferB, 4),
ryood 3:ee7fd89f2539 74 ExioBufferedIn(&inBufferB, 5),
ryood 3:ee7fd89f2539 75 ExioBufferedIn(&inBufferB, 6),
ryood 3:ee7fd89f2539 76 ExioBufferedIn(&inBufferB, 7)
ryood 3:ee7fd89f2539 77 };
ryood 3:ee7fd89f2539 78
ryood 4:20ee7612edb9 79 inBufferA.run(10);
ryood 4:20ee7612edb9 80 inBufferB.run(10);
ryood 3:ee7fd89f2539 81
ryood 3:ee7fd89f2539 82 while (true) {
ryood 3:ee7fd89f2539 83 for (int i = 0; i < 8; i++) {
ryood 4:20ee7612edb9 84 int va = inA[i].read();
ryood 4:20ee7612edb9 85 printf("%d ", va);
ryood 4:20ee7612edb9 86 }
ryood 4:20ee7612edb9 87 putchar(' ');
ryood 4:20ee7612edb9 88 for (int i = 0; i < 8; i++) {
ryood 4:20ee7612edb9 89 int vb = inB[i].read();
ryood 4:20ee7612edb9 90 printf("%d ", vb);
ryood 3:ee7fd89f2539 91 }
ryood 3:ee7fd89f2539 92 printf("\r\n");
ryood 3:ee7fd89f2539 93 //Thread::wait(10);
ryood 3:ee7fd89f2539 94 }
ryood 3:ee7fd89f2539 95 }
ryood 4:20ee7612edb9 96
ryood 6:9acaeb5465d2 97 void testExioBufferedDebounceIn()
ryood 6:9acaeb5465d2 98 {
ryood 6:9acaeb5465d2 99 printf("*** Test ExioBuffeDebounceIn ***\r\n");
ryood 6:9acaeb5465d2 100
ryood 6:9acaeb5465d2 101 // Reset MCP23S17 (初期化時にreset()が必要)
ryood 6:9acaeb5465d2 102 Exio.reset();
ryood 6:9acaeb5465d2 103
ryood 6:9acaeb5465d2 104 ExioInBuffer inBufferA(&Exio, ExioPortA);
ryood 6:9acaeb5465d2 105 ExioBufferedDebounceIn inA[] = {
ryood 6:9acaeb5465d2 106 ExioBufferedDebounceIn(&inBufferA, 0),
ryood 6:9acaeb5465d2 107 ExioBufferedDebounceIn(&inBufferA, 1),
ryood 6:9acaeb5465d2 108 ExioBufferedDebounceIn(&inBufferA, 2),
ryood 6:9acaeb5465d2 109 ExioBufferedDebounceIn(&inBufferA, 3),
ryood 6:9acaeb5465d2 110 ExioBufferedDebounceIn(&inBufferA, 4),
ryood 6:9acaeb5465d2 111 ExioBufferedDebounceIn(&inBufferA, 5),
ryood 6:9acaeb5465d2 112 ExioBufferedDebounceIn(&inBufferA, 6),
ryood 6:9acaeb5465d2 113 ExioBufferedDebounceIn(&inBufferA, 7)
ryood 6:9acaeb5465d2 114 };
ryood 6:9acaeb5465d2 115
ryood 6:9acaeb5465d2 116 ExioInBuffer inBufferB(&Exio, ExioPortB);
ryood 6:9acaeb5465d2 117 ExioBufferedIn inB[] = {
ryood 6:9acaeb5465d2 118 ExioBufferedDebounceIn(&inBufferB, 0),
ryood 6:9acaeb5465d2 119 ExioBufferedDebounceIn(&inBufferB, 1),
ryood 6:9acaeb5465d2 120 ExioBufferedDebounceIn(&inBufferB, 2),
ryood 6:9acaeb5465d2 121 ExioBufferedDebounceIn(&inBufferB, 3),
ryood 6:9acaeb5465d2 122 ExioBufferedDebounceIn(&inBufferB, 4),
ryood 6:9acaeb5465d2 123 ExioBufferedDebounceIn(&inBufferB, 5),
ryood 6:9acaeb5465d2 124 ExioBufferedDebounceIn(&inBufferB, 6),
ryood 6:9acaeb5465d2 125 ExioBufferedDebounceIn(&inBufferB, 7)
ryood 6:9acaeb5465d2 126 };
ryood 6:9acaeb5465d2 127
ryood 6:9acaeb5465d2 128 // Start Timers
ryood 6:9acaeb5465d2 129 inBufferA.run(10);
ryood 6:9acaeb5465d2 130 inBufferB.run(10);
ryood 6:9acaeb5465d2 131 for (int i = 0; i < 8; i++) {
ryood 6:9acaeb5465d2 132 inA[i].set_debounce_us(10000);
ryood 6:9acaeb5465d2 133 inA[i].set_debounce_us(10000);
ryood 6:9acaeb5465d2 134 }
ryood 6:9acaeb5465d2 135
ryood 6:9acaeb5465d2 136 while (true) {
ryood 6:9acaeb5465d2 137 for (int i = 0; i < 8; i++) {
ryood 6:9acaeb5465d2 138 int va = inA[i].read();
ryood 6:9acaeb5465d2 139 printf("%d ", va);
ryood 6:9acaeb5465d2 140 }
ryood 6:9acaeb5465d2 141 putchar(' ');
ryood 6:9acaeb5465d2 142 for (int i = 0; i < 8; i++) {
ryood 6:9acaeb5465d2 143 int vb = inB[i].read();
ryood 6:9acaeb5465d2 144 printf("%d ", vb);
ryood 6:9acaeb5465d2 145 }
ryood 6:9acaeb5465d2 146 printf("\r\n");
ryood 6:9acaeb5465d2 147 //Thread::wait(10);
ryood 6:9acaeb5465d2 148 }
ryood 6:9acaeb5465d2 149 }
ryood 6:9acaeb5465d2 150
ryood 5:526691f54026 151 void testExioBufferedRotaryEncoder()
ryood 5:526691f54026 152 {
ryood 5:526691f54026 153 printf("*** Test ExioBufferedRotaryEncoder ***\r\n");
ryood 5:526691f54026 154
ryood 5:526691f54026 155 // Reset MCP23S17 (初期化時にreset()が必要)
ryood 5:526691f54026 156 Exio.reset();
ryood 5:526691f54026 157
ryood 5:526691f54026 158 ExioInBuffer inBufferA(&Exio, ExioPortA);
ryood 5:526691f54026 159 ExioBufferedRotaryEncoder re1(&inBufferA, 0, 1);
ryood 5:526691f54026 160
ryood 5:526691f54026 161 // Start Timers
ryood 5:526691f54026 162 inBufferA.run(5);
ryood 5:526691f54026 163 re1.setInterval(1000);
ryood 5:526691f54026 164
ryood 5:526691f54026 165 while (true) {
ryood 5:526691f54026 166 int v = re1.getVal();
ryood 5:526691f54026 167 printf("%d\r\n", v);
ryood 5:526691f54026 168 }
ryood 5:526691f54026 169 }
ryood 5:526691f54026 170
ryood 0:7578a6b316b7 171 int main()
ryood 0:7578a6b316b7 172 {
ryood 4:20ee7612edb9 173 //testExioInBuffer();
ryood 5:526691f54026 174 //testExioBufferedIn();
ryood 6:9acaeb5465d2 175 testExioBufferedDebounceIn();
ryood 6:9acaeb5465d2 176 //testExioBufferedRotaryEncoder();
ryood 0:7578a6b316b7 177 }