Test program for MCP23S17

Dependencies:   ExioController MCP23S17 mbed-rtos mbed

Committer:
ryood
Date:
Wed Nov 02 05:24:53 2016 +0000
Revision:
7:6c63d0f70ebc
Parent:
6:4f9d08f8dfcf
Child:
8:5a1b267eae1d
Debug: ExioMcp23s17RotartyEncoder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:0b1ae70a694b 1 #include "mbed.h"
ryood 0:0b1ae70a694b 2 #include "rtos.h"
ryood 0:0b1ae70a694b 3 #include "ExioMcp23s17.h"
ryood 1:e0679b70b51d 4 #include "ExioMcp23s17DigitalIn.h"
ryood 2:aae9ca66cc87 5 #include "ExioMcp23s17PinDetect.h"
ryood 6:4f9d08f8dfcf 6 #include "ExioMcp23s17RotaryEncoder.h"
ryood 0:0b1ae70a694b 7
ryood 0:0b1ae70a694b 8 SPI Spi(PC_12, PC_11, PC_10); // SPI3: mosi, miso, sclk
ryood 0:0b1ae70a694b 9 //SPI Spi(PA_7, PA_6, PA_5); // SPI1: mosi, miso, sclk
ryood 0:0b1ae70a694b 10
ryood 0:0b1ae70a694b 11 // MExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs, PinName nReset);
ryood 0:0b1ae70a694b 12 ExioMcp23s17 Exio(0x00, Spi, PD_2, PA_13);
ryood 0:0b1ae70a694b 13
ryood 2:aae9ca66cc87 14 /*
ryood 0:0b1ae70a694b 15 void ExioMcp23s17Test()
ryood 0:0b1ae70a694b 16 {
ryood 0:0b1ae70a694b 17 printf("\r\n\n*** ExioMcp23s17 ***\r\n");
ryood 0:0b1ae70a694b 18
ryood 0:0b1ae70a694b 19 // Reset MCP23S17
ryood 0:0b1ae70a694b 20 Exio.reset();
ryood 0:0b1ae70a694b 21
ryood 0:0b1ae70a694b 22 // PORTA output
ryood 0:0b1ae70a694b 23 Exio.ioDirection(ExioPortA, 0x00);
ryood 0:0b1ae70a694b 24
ryood 0:0b1ae70a694b 25 // PORTB input
ryood 0:0b1ae70a694b 26 Exio.ioDirection(ExioPortB, 0xFF);
ryood 0:0b1ae70a694b 27 // PORTB pull-up
ryood 0:0b1ae70a694b 28 Exio.ioPullup(ExioPortB, 0xFF);
ryood 0:0b1ae70a694b 29 // PORTB invert polarity
ryood 0:0b1ae70a694b 30 Exio.ioPolarity(ExioPortB, 0xFF);
ryood 0:0b1ae70a694b 31
ryood 1:e0679b70b51d 32 // LED Check (PortA)
ryood 0:0b1ae70a694b 33 for (int i = 0; i < 8; i++) {
ryood 0:0b1ae70a694b 34 Exio.writePort(ExioPortA, 1 << i);
ryood 0:0b1ae70a694b 35 wait(0.1);
ryood 0:0b1ae70a694b 36 }
ryood 1:e0679b70b51d 37 Exio.writePort(ExioPortA, 0x00);
ryood 0:0b1ae70a694b 38
ryood 0:0b1ae70a694b 39 while (true) {
ryood 1:e0679b70b51d 40 uint8_t data = Exio.readPort(ExioPortB);
ryood 0:0b1ae70a694b 41 wait_us(1);
ryood 0:0b1ae70a694b 42 Exio.writePort(ExioPortA, data);
ryood 0:0b1ae70a694b 43 }
ryood 0:0b1ae70a694b 44 }
ryood 0:0b1ae70a694b 45
ryood 1:e0679b70b51d 46 void ExioMcp23s17DigitalInTest()
ryood 1:e0679b70b51d 47 {
ryood 1:e0679b70b51d 48 printf("\r\n\n*** ExioMcp23s17DigitalIn test ***\r\n");
ryood 1:e0679b70b51d 49
ryood 1:e0679b70b51d 50 Exio.reset();
ryood 1:e0679b70b51d 51
ryood 1:e0679b70b51d 52 // set PORTA as output
ryood 1:e0679b70b51d 53 Exio.ioDirection(ExioPortA, 0x00);
ryood 1:e0679b70b51d 54
ryood 1:e0679b70b51d 55 // set PORTB as input via ExioDigitalIn
ryood 1:e0679b70b51d 56 ExioMcp23s17DigitalIn inB0(Exio, ExioPortB, 0);
ryood 1:e0679b70b51d 57 ExioMcp23s17DigitalIn inB1(Exio, ExioPortB, 1);
ryood 1:e0679b70b51d 58 ExioMcp23s17DigitalIn inB2(Exio, ExioPortB, 2);
ryood 1:e0679b70b51d 59 ExioMcp23s17DigitalIn inB3(Exio, ExioPortB, 3);
ryood 1:e0679b70b51d 60 ExioMcp23s17DigitalIn inB4(Exio, ExioPortB, 4);
ryood 1:e0679b70b51d 61 ExioMcp23s17DigitalIn inB5(Exio, ExioPortB, 5);
ryood 1:e0679b70b51d 62 ExioMcp23s17DigitalIn inB6(Exio, ExioPortB, 6);
ryood 1:e0679b70b51d 63 ExioMcp23s17DigitalIn inB7(Exio, ExioPortB, 7);
ryood 1:e0679b70b51d 64
ryood 1:e0679b70b51d 65 inB0.mode(PullUp);
ryood 1:e0679b70b51d 66 inB1.mode(PullUp);
ryood 1:e0679b70b51d 67 inB2.mode(PullUp);
ryood 1:e0679b70b51d 68 inB3.mode(PullUp);
ryood 1:e0679b70b51d 69 inB4.mode(PullUp);
ryood 1:e0679b70b51d 70 inB5.mode(PullUp);
ryood 1:e0679b70b51d 71 inB6.mode(PullUp);
ryood 1:e0679b70b51d 72 inB7.mode(PullUp);
ryood 1:e0679b70b51d 73
ryood 1:e0679b70b51d 74 // LED Check (PortA)
ryood 1:e0679b70b51d 75 for (int i = 0; i < 8; i++) {
ryood 1:e0679b70b51d 76 Exio.writePort(ExioPortA, 1 << i);
ryood 1:e0679b70b51d 77 wait(0.1);
ryood 1:e0679b70b51d 78 }
ryood 1:e0679b70b51d 79 Exio.writePort(ExioPortA, 0x00);
ryood 1:e0679b70b51d 80
ryood 1:e0679b70b51d 81 while (true) {
ryood 1:e0679b70b51d 82
ryood 1:e0679b70b51d 83 // read PORTB via ExioMcp23s17DigitalIn
ryood 1:e0679b70b51d 84 uint8_t data = 0;
ryood 1:e0679b70b51d 85 data |= inB0.read();
ryood 1:e0679b70b51d 86 data |= inB1.read() << 1;
ryood 1:e0679b70b51d 87 data |= inB2.read() << 2;
ryood 1:e0679b70b51d 88 data |= inB3.read() << 3;
ryood 1:e0679b70b51d 89 data |= inB4.read() << 4;
ryood 1:e0679b70b51d 90 data |= inB5.read() << 5;
ryood 1:e0679b70b51d 91 data |= inB6.read() << 6;
ryood 1:e0679b70b51d 92 data |= inB7.read() << 7;
ryood 1:e0679b70b51d 93
ryood 1:e0679b70b51d 94 // write PORTA
ryood 1:e0679b70b51d 95 Exio.writePort(ExioPortA, data);
ryood 1:e0679b70b51d 96 }
ryood 1:e0679b70b51d 97 }
ryood 2:aae9ca66cc87 98 */
ryood 2:aae9ca66cc87 99
ryood 6:4f9d08f8dfcf 100 /*
ryood 3:3638468099de 101 // トグル動作
ryood 3:3638468099de 102 bool pb0state = false;
ryood 2:aae9ca66cc87 103 void pb0Falled() {
ryood 3:3638468099de 104 uint8_t data = Exio.readPort(ExioPortA);
ryood 3:3638468099de 105 pb0state = !pb0state;
ryood 3:3638468099de 106 if (pb0state) {
ryood 3:3638468099de 107 data |= (1 << 0);
ryood 3:3638468099de 108 } else {
ryood 3:3638468099de 109 data &= ~(1 << 0);
ryood 3:3638468099de 110 }
ryood 3:3638468099de 111 Exio.writePort(ExioPortA, data);
ryood 2:aae9ca66cc87 112 }
ryood 2:aae9ca66cc87 113
ryood 2:aae9ca66cc87 114 void pb1Falled() {
ryood 2:aae9ca66cc87 115 Exio.writePort(ExioPortA, (1 << 1));
ryood 2:aae9ca66cc87 116 }
ryood 2:aae9ca66cc87 117
ryood 2:aae9ca66cc87 118 void pb2Falled() {
ryood 2:aae9ca66cc87 119 Exio.writePort(ExioPortA, (1 << 2));
ryood 2:aae9ca66cc87 120 }
ryood 2:aae9ca66cc87 121
ryood 2:aae9ca66cc87 122 void pb3Falled() {
ryood 2:aae9ca66cc87 123 Exio.writePort(ExioPortA, (1 << 3));
ryood 2:aae9ca66cc87 124 }
ryood 2:aae9ca66cc87 125
ryood 2:aae9ca66cc87 126 void pb4Falled() {
ryood 2:aae9ca66cc87 127 Exio.writePort(ExioPortA, (1 << 4));
ryood 2:aae9ca66cc87 128 }
ryood 2:aae9ca66cc87 129
ryood 2:aae9ca66cc87 130 void pb5Falled() {
ryood 2:aae9ca66cc87 131 Exio.writePort(ExioPortA, (1 << 5));
ryood 2:aae9ca66cc87 132 }
ryood 2:aae9ca66cc87 133
ryood 2:aae9ca66cc87 134 void pb6Falled() {
ryood 2:aae9ca66cc87 135 Exio.writePort(ExioPortA, (1 << 6));
ryood 2:aae9ca66cc87 136 }
ryood 2:aae9ca66cc87 137
ryood 2:aae9ca66cc87 138 void pb7Falled() {
ryood 2:aae9ca66cc87 139 Exio.writePort(ExioPortA, (1 << 7));
ryood 2:aae9ca66cc87 140 }
ryood 6:4f9d08f8dfcf 141 */
ryood 6:4f9d08f8dfcf 142
ryood 5:69ea7aa2a755 143 /*
ryood 2:aae9ca66cc87 144 void ExioMcp23s17PinDetectTest()
ryood 2:aae9ca66cc87 145 {
ryood 2:aae9ca66cc87 146 printf("\r\n\n*** ExioMcp23s17PinDetect test ***\r\n");
ryood 2:aae9ca66cc87 147
ryood 2:aae9ca66cc87 148 Exio.reset();
ryood 2:aae9ca66cc87 149
ryood 2:aae9ca66cc87 150 // set PORTA as output
ryood 2:aae9ca66cc87 151 Exio.ioDirection(ExioPortA, 0x00);
ryood 2:aae9ca66cc87 152
ryood 2:aae9ca66cc87 153 // create PORTB pins as inputs via ExioMcp23s17PinDetect
ryood 2:aae9ca66cc87 154 ExioMcp23s17PinDetect PinB0(Exio, ExioPortB, 0);
ryood 2:aae9ca66cc87 155 ExioMcp23s17PinDetect PinB1(Exio, ExioPortB, 1);
ryood 2:aae9ca66cc87 156 ExioMcp23s17PinDetect PinB2(Exio, ExioPortB, 2);
ryood 2:aae9ca66cc87 157 ExioMcp23s17PinDetect PinB3(Exio, ExioPortB, 3);
ryood 2:aae9ca66cc87 158 ExioMcp23s17PinDetect PinB4(Exio, ExioPortB, 4);
ryood 2:aae9ca66cc87 159 ExioMcp23s17PinDetect PinB5(Exio, ExioPortB, 5);
ryood 2:aae9ca66cc87 160 ExioMcp23s17PinDetect PinB6(Exio, ExioPortB, 6);
ryood 2:aae9ca66cc87 161 ExioMcp23s17PinDetect PinB7(Exio, ExioPortB, 7);
ryood 2:aae9ca66cc87 162
ryood 2:aae9ca66cc87 163 // assign callback functions
ryood 2:aae9ca66cc87 164 PinB0.attach_asserted(&pb0Falled);
ryood 2:aae9ca66cc87 165 PinB0.setAssertValue(0);
ryood 2:aae9ca66cc87 166 PinB0.setSampleFrequency();
ryood 2:aae9ca66cc87 167
ryood 2:aae9ca66cc87 168 PinB1.attach_asserted(&pb1Falled);
ryood 2:aae9ca66cc87 169 PinB1.setAssertValue(0);
ryood 2:aae9ca66cc87 170 PinB1.setSampleFrequency();
ryood 2:aae9ca66cc87 171
ryood 2:aae9ca66cc87 172 PinB2.attach_asserted(&pb2Falled);
ryood 2:aae9ca66cc87 173 PinB2.setAssertValue(0);
ryood 2:aae9ca66cc87 174 PinB2.setSampleFrequency();
ryood 2:aae9ca66cc87 175
ryood 2:aae9ca66cc87 176 PinB3.attach_asserted(&pb3Falled);
ryood 2:aae9ca66cc87 177 PinB3.setAssertValue(0);
ryood 2:aae9ca66cc87 178 PinB3.setSampleFrequency();
ryood 2:aae9ca66cc87 179
ryood 2:aae9ca66cc87 180 PinB4.attach_asserted(&pb4Falled);
ryood 2:aae9ca66cc87 181 PinB4.setAssertValue(0);
ryood 2:aae9ca66cc87 182 PinB4.setSampleFrequency();
ryood 2:aae9ca66cc87 183
ryood 2:aae9ca66cc87 184 PinB5.attach_asserted(&pb5Falled);
ryood 2:aae9ca66cc87 185 PinB5.setAssertValue(0);
ryood 2:aae9ca66cc87 186 PinB5.setSampleFrequency();
ryood 2:aae9ca66cc87 187
ryood 2:aae9ca66cc87 188 PinB6.attach_asserted(&pb6Falled);
ryood 2:aae9ca66cc87 189 PinB6.setAssertValue(0);
ryood 2:aae9ca66cc87 190 PinB6.setSampleFrequency();
ryood 2:aae9ca66cc87 191
ryood 2:aae9ca66cc87 192 PinB7.attach_asserted(&pb7Falled);
ryood 2:aae9ca66cc87 193 PinB7.setAssertValue(0);
ryood 2:aae9ca66cc87 194 PinB7.setSampleFrequency();
ryood 2:aae9ca66cc87 195
ryood 2:aae9ca66cc87 196
ryood 2:aae9ca66cc87 197 // LED Check (PortA)
ryood 2:aae9ca66cc87 198 for (int i = 0; i < 8; i++) {
ryood 2:aae9ca66cc87 199 Exio.writePort(ExioPortA, 1 << i);
ryood 2:aae9ca66cc87 200 wait(0.1);
ryood 2:aae9ca66cc87 201 }
ryood 2:aae9ca66cc87 202 Exio.writePort(ExioPortA, 0x00);
ryood 2:aae9ca66cc87 203
ryood 2:aae9ca66cc87 204 while (true) {
ryood 2:aae9ca66cc87 205 }
ryood 2:aae9ca66cc87 206 }
ryood 5:69ea7aa2a755 207 */
ryood 5:69ea7aa2a755 208
ryood 6:4f9d08f8dfcf 209 /*
ryood 5:69ea7aa2a755 210 void ExioMcp23s17PinDetectPullModeTest()
ryood 5:69ea7aa2a755 211 {
ryood 5:69ea7aa2a755 212 printf("\r\n\n*** ExioMcp23s17PinDetect PullMode test ***\r\n");
ryood 5:69ea7aa2a755 213
ryood 5:69ea7aa2a755 214 Exio.reset();
ryood 5:69ea7aa2a755 215
ryood 5:69ea7aa2a755 216 // set PORTA as output
ryood 5:69ea7aa2a755 217 Exio.ioDirection(ExioPortA, 0x00);
ryood 5:69ea7aa2a755 218
ryood 5:69ea7aa2a755 219 // create PORTB pins as inputs via ExioMcp23s17PinDetect
ryood 5:69ea7aa2a755 220 ExioMcp23s17PinDetect PinB0(Exio, ExioPortB, 0, PullUp);
ryood 5:69ea7aa2a755 221 ExioMcp23s17PinDetect PinB1(Exio, ExioPortB, 1, PullNone);
ryood 5:69ea7aa2a755 222 ExioMcp23s17PinDetect PinB2(Exio, ExioPortB, 2, PullUp);
ryood 5:69ea7aa2a755 223 ExioMcp23s17PinDetect PinB3(Exio, ExioPortB, 3, PullNone);
ryood 5:69ea7aa2a755 224 ExioMcp23s17PinDetect PinB4(Exio, ExioPortB, 4, PullUp);
ryood 5:69ea7aa2a755 225 ExioMcp23s17PinDetect PinB5(Exio, ExioPortB, 5, PullNone);
ryood 5:69ea7aa2a755 226 ExioMcp23s17PinDetect PinB6(Exio, ExioPortB, 6, PullUp);
ryood 5:69ea7aa2a755 227 ExioMcp23s17PinDetect PinB7(Exio, ExioPortB, 7, PullNone);
ryood 5:69ea7aa2a755 228
ryood 5:69ea7aa2a755 229 PinB1.mode(PullUp);
ryood 5:69ea7aa2a755 230 PinB3.mode(PullUp);
ryood 5:69ea7aa2a755 231 PinB5.mode(PullUp);
ryood 5:69ea7aa2a755 232 PinB7.mode(PullUp);
ryood 5:69ea7aa2a755 233
ryood 5:69ea7aa2a755 234 //PinB7.mode(PullDown);
ryood 5:69ea7aa2a755 235
ryood 5:69ea7aa2a755 236 // assign callback functions
ryood 5:69ea7aa2a755 237 PinB0.attach_asserted(&pb0Falled);
ryood 5:69ea7aa2a755 238 PinB0.setAssertValue(0);
ryood 5:69ea7aa2a755 239 PinB0.setSampleFrequency();
ryood 5:69ea7aa2a755 240
ryood 5:69ea7aa2a755 241 PinB1.attach_asserted(&pb1Falled);
ryood 5:69ea7aa2a755 242 PinB1.setAssertValue(0);
ryood 5:69ea7aa2a755 243 PinB1.setSampleFrequency();
ryood 5:69ea7aa2a755 244
ryood 5:69ea7aa2a755 245 PinB2.attach_asserted(&pb2Falled);
ryood 5:69ea7aa2a755 246 PinB2.setAssertValue(0);
ryood 5:69ea7aa2a755 247 PinB2.setSampleFrequency();
ryood 5:69ea7aa2a755 248
ryood 5:69ea7aa2a755 249 PinB3.attach_asserted(&pb3Falled);
ryood 5:69ea7aa2a755 250 PinB3.setAssertValue(0);
ryood 5:69ea7aa2a755 251 PinB3.setSampleFrequency();
ryood 5:69ea7aa2a755 252
ryood 5:69ea7aa2a755 253 PinB4.attach_asserted(&pb4Falled);
ryood 5:69ea7aa2a755 254 PinB4.setAssertValue(0);
ryood 5:69ea7aa2a755 255 PinB4.setSampleFrequency();
ryood 5:69ea7aa2a755 256
ryood 5:69ea7aa2a755 257 PinB5.attach_asserted(&pb5Falled);
ryood 5:69ea7aa2a755 258 PinB5.setAssertValue(0);
ryood 5:69ea7aa2a755 259 PinB5.setSampleFrequency();
ryood 5:69ea7aa2a755 260
ryood 5:69ea7aa2a755 261 PinB6.attach_asserted(&pb6Falled);
ryood 5:69ea7aa2a755 262 PinB6.setAssertValue(0);
ryood 5:69ea7aa2a755 263 PinB6.setSampleFrequency();
ryood 5:69ea7aa2a755 264
ryood 5:69ea7aa2a755 265 PinB7.attach_asserted(&pb7Falled);
ryood 5:69ea7aa2a755 266 PinB7.setAssertValue(0);
ryood 5:69ea7aa2a755 267 PinB7.setSampleFrequency();
ryood 5:69ea7aa2a755 268
ryood 5:69ea7aa2a755 269
ryood 5:69ea7aa2a755 270 // LED Check (PortA)
ryood 5:69ea7aa2a755 271 for (int i = 0; i < 8; i++) {
ryood 5:69ea7aa2a755 272 Exio.writePort(ExioPortA, 1 << i);
ryood 5:69ea7aa2a755 273 wait(0.1);
ryood 5:69ea7aa2a755 274 }
ryood 5:69ea7aa2a755 275 Exio.writePort(ExioPortA, 0x00);
ryood 5:69ea7aa2a755 276
ryood 5:69ea7aa2a755 277 while (true) {
ryood 5:69ea7aa2a755 278 }
ryood 5:69ea7aa2a755 279 }
ryood 6:4f9d08f8dfcf 280 */
ryood 6:4f9d08f8dfcf 281
ryood 6:4f9d08f8dfcf 282 void ExioMcp23s17RotaryEncoderTest()
ryood 6:4f9d08f8dfcf 283 {
ryood 6:4f9d08f8dfcf 284 printf("\r\n\n*** ExioMcp23s17RotaryEncoder test ***\r\n");
ryood 6:4f9d08f8dfcf 285
ryood 6:4f9d08f8dfcf 286 Exio.reset();
ryood 6:4f9d08f8dfcf 287
ryood 6:4f9d08f8dfcf 288 // set PORTA as output
ryood 6:4f9d08f8dfcf 289 Exio.ioDirection(ExioPortA, 0x00);
ryood 6:4f9d08f8dfcf 290
ryood 6:4f9d08f8dfcf 291 // LED Check (PortA)
ryood 6:4f9d08f8dfcf 292 for (int i = 0; i < 8; i++) {
ryood 6:4f9d08f8dfcf 293 Exio.writePort(ExioPortA, 1 << i);
ryood 7:6c63d0f70ebc 294 wait(0.2);
ryood 6:4f9d08f8dfcf 295 }
ryood 6:4f9d08f8dfcf 296 Exio.writePort(ExioPortA, 0x00);
ryood 7:6c63d0f70ebc 297
ryood 7:6c63d0f70ebc 298 // set PORTB[0..1] as RotaryEncoder
ryood 7:6c63d0f70ebc 299 /*
ryood 7:6c63d0f70ebc 300 ExioMcp23s17RotaryEncoder(
ryood 7:6c63d0f70ebc 301 ExioMcp23s17& device, ExioPort port, int pin1, int pin2,
ryood 7:6c63d0f70ebc 302 int min = 0, int max = 100, int val = 50
ryood 7:6c63d0f70ebc 303 );
ryood 7:6c63d0f70ebc 304 */
ryood 7:6c63d0f70ebc 305 ExioMcp23s17RotaryEncoder RotEnc1(Exio, ExioPortB, 0, 1, 0, 0x0f, 0);
ryood 7:6c63d0f70ebc 306
ryood 7:6c63d0f70ebc 307 // set PORTB[2..3] as RotaryEncoder
ryood 7:6c63d0f70ebc 308 //RotaryEncoder::RotaryEncoder(ExioMcp23s17DigitalIn& _pin1, ExioMcp23s17DigitalIn& _pin2, int min, int max, int val)
ryood 7:6c63d0f70ebc 309 ExioMcp23s17RotaryEncoder RotEnc2(Exio, ExioPortB, 2, 3, 0, 0x0f, 0);
ryood 6:4f9d08f8dfcf 310
ryood 6:4f9d08f8dfcf 311 while (true) {
ryood 7:6c63d0f70ebc 312 int v1 = RotEnc1.getVal();
ryood 7:6c63d0f70ebc 313 int v2 = RotEnc2.getVal();
ryood 7:6c63d0f70ebc 314 uint8_t data = ((uint8_t)v2 << 4) | (uint8_t)v1;
ryood 7:6c63d0f70ebc 315 Exio.writePort(ExioPortA, data);
ryood 7:6c63d0f70ebc 316 //printf("%d %d\r\n", v1, v2);
ryood 7:6c63d0f70ebc 317 Thread::wait(10);
ryood 6:4f9d08f8dfcf 318 }
ryood 6:4f9d08f8dfcf 319 }
ryood 1:e0679b70b51d 320
ryood 0:0b1ae70a694b 321 int main()
ryood 0:0b1ae70a694b 322 {
ryood 1:e0679b70b51d 323 //ExioMcp23s17Test();
ryood 2:aae9ca66cc87 324 //ExioMcp23s17DigitalInTest();
ryood 5:69ea7aa2a755 325 //ExioMcp23s17PinDetectTest();
ryood 6:4f9d08f8dfcf 326 //ExioMcp23s17PinDetectPullModeTest();
ryood 6:4f9d08f8dfcf 327 ExioMcp23s17RotaryEncoderTest();
ryood 1:e0679b70b51d 328 }