Test program for MCP23S17
Dependencies: ExioController MCP23S17 mbed-rtos mbed
Diff: main.cpp
- Revision:
- 12:5f0db7a87485
- Parent:
- 11:a057a7a47f6e
- Child:
- 13:1688ed45cccd
--- a/main.cpp Fri Nov 04 13:11:24 2016 +0000 +++ b/main.cpp Fri Nov 04 14:17:33 2016 +0000 @@ -2,7 +2,7 @@ #include "rtos.h" #include "ExioMcp23s17PinDetect.h" -//#include "ExioMcp23s17DebounceIn.h" +#include "ExioMcp23s17DebounceIn.h" #include "ExioMcp23s17RotaryEncoder.h" #include "ExioMcp23s17Keypad4x4.h" @@ -12,6 +12,7 @@ // MExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs, PinName nReset); ExioMcp23s17 Exio(0x00, Spi, PD_2, PA_13); +/* bool state = false; uint8_t count = 0; @@ -24,21 +25,66 @@ void pa7Falled() { count++; } +*/ + +void TestExioMcp23s17DebounceIn() +{ + printf("\r\n\n*** ExioMcp23s17DebouceIn test ***\r\n"); + + Exio.reset(); + + ExioMcp23s17DebounceIn insA[8] = { + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 0), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 1), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 2), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 3), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 4), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 5), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 6), + ExioMcp23s17DebounceIn(&Exio, ExioPortA, 7) + }; + + ExioMcp23s17DebounceIn insB[8] = { + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 0), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 1), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 2), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 3), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 4), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 5), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 6), + ExioMcp23s17DebounceIn(&Exio, ExioPortB, 7) + }; + + for (int i = 0; i < 8; i++) { + insA[i].mode(PullUp); + insB[i].mode(PullUp); + } + for (int i = 0; i < 8; i++) { + insA[i].set_debounce_us(1000); + insB[i].set_debounce_us(1000); + } + + while (true) { + for (int i = 0; i < 8; i++) { + printf("%d ", insA[i].read()); + } + printf(" "); + for (int i = 0; i < 8; i++) { + printf("%d ", insB[i].read()); + } + printf("\r\n"); + } +} int main() { + TestExioMcp23s17DebounceIn(); + + /* printf("\r\n\n*** ExioMcp23s17Controller test ***\r\n"); Exio.reset(); - // set PORTA[6:7] as inputs - /* - ExioMcp23s17DebounceIn in1(&Exio, ExioPortA, 6); - ExioMcp23s17DebounceIn in2(&Exio, ExioPortA, 7); - in1.mode(PullUp); - in2.mode(PullUp); - */ - ExioMcp23s17PinDetect PinA6(&Exio, ExioPortA, 6); ExioMcp23s17PinDetect PinA7(&Exio, ExioPortA, 7); @@ -61,18 +107,22 @@ ExioMcp23s17RotaryEncoder RotEnc2(&Exio, ExioPortA, 2, 3, 0, 100, 50); RotEnc2.setInterval(500); - // set PORTB as Keypad 4x4 - //ExioMcp23s17Keypad4x4 Keypad(&Exio, ExioPortB); + // set PORTB[0:7] as debouce inputs + ExioMcp23s17DebounceIn* psw[8]; + for (int i = 0; i < 8; i++) { + psw[i] = new ExioMcp23s17DebounceIn(&Exio, ExioPortB, i); + psw[i]->mode(PullUp); + } while (true) { - int reVal1, reVal2, kpVal; - //state = in1.read(); - //count = in2.read(); + int reVal1, reVal2; reVal1 = RotEnc1.getVal(); reVal2 = RotEnc2.getVal(); - //kpVal = Keypad.keyScan1(); - printf("state:%d count:%d RE1:%d RE2:%d KP:%d\r\n", state, count, reVal1, reVal2, kpVal); + printf("state:%d count:%d RE1:%d RE2:%d\r\n", state, count, reVal1, reVal2); Thread::wait(10); } + + delete[] psw; + */ }