Test program for MCP23S17
Dependencies: ExioController MCP23S17 mbed-rtos mbed
Diff: main.cpp
- Revision:
- 5:69ea7aa2a755
- Parent:
- 3:3638468099de
- Child:
- 6:4f9d08f8dfcf
--- a/main.cpp Sun Oct 30 17:13:35 2016 +0000 +++ b/main.cpp Wed Nov 02 03:03:47 2016 +0000 @@ -136,7 +136,7 @@ void pb7Falled() { Exio.writePort(ExioPortA, (1 << 7)); } - +/* void ExioMcp23s17PinDetectTest() { printf("\r\n\n*** ExioMcp23s17PinDetect test ***\r\n"); @@ -200,10 +200,83 @@ while (true) { } } +*/ + +void ExioMcp23s17PinDetectPullModeTest() +{ + printf("\r\n\n*** ExioMcp23s17PinDetect PullMode test ***\r\n"); + + Exio.reset(); + + // set PORTA as output + Exio.ioDirection(ExioPortA, 0x00); + + // create PORTB pins as inputs via ExioMcp23s17PinDetect + ExioMcp23s17PinDetect PinB0(Exio, ExioPortB, 0, PullUp); + ExioMcp23s17PinDetect PinB1(Exio, ExioPortB, 1, PullNone); + ExioMcp23s17PinDetect PinB2(Exio, ExioPortB, 2, PullUp); + ExioMcp23s17PinDetect PinB3(Exio, ExioPortB, 3, PullNone); + ExioMcp23s17PinDetect PinB4(Exio, ExioPortB, 4, PullUp); + ExioMcp23s17PinDetect PinB5(Exio, ExioPortB, 5, PullNone); + ExioMcp23s17PinDetect PinB6(Exio, ExioPortB, 6, PullUp); + ExioMcp23s17PinDetect PinB7(Exio, ExioPortB, 7, PullNone); + + PinB1.mode(PullUp); + PinB3.mode(PullUp); + PinB5.mode(PullUp); + PinB7.mode(PullUp); + + //PinB7.mode(PullDown); + + // assign callback functions + PinB0.attach_asserted(&pb0Falled); + PinB0.setAssertValue(0); + PinB0.setSampleFrequency(); + + PinB1.attach_asserted(&pb1Falled); + PinB1.setAssertValue(0); + PinB1.setSampleFrequency(); + + PinB2.attach_asserted(&pb2Falled); + PinB2.setAssertValue(0); + PinB2.setSampleFrequency(); + + PinB3.attach_asserted(&pb3Falled); + PinB3.setAssertValue(0); + PinB3.setSampleFrequency(); + + PinB4.attach_asserted(&pb4Falled); + PinB4.setAssertValue(0); + PinB4.setSampleFrequency(); + + PinB5.attach_asserted(&pb5Falled); + PinB5.setAssertValue(0); + PinB5.setSampleFrequency(); + + PinB6.attach_asserted(&pb6Falled); + PinB6.setAssertValue(0); + PinB6.setSampleFrequency(); + + PinB7.attach_asserted(&pb7Falled); + PinB7.setAssertValue(0); + PinB7.setSampleFrequency(); + + + // LED Check (PortA) + for (int i = 0; i < 8; i++) { + Exio.writePort(ExioPortA, 1 << i); + wait(0.1); + } + Exio.writePort(ExioPortA, 0x00); + + while (true) { + } +} int main() { //ExioMcp23s17Test(); //ExioMcp23s17DigitalInTest(); - ExioMcp23s17PinDetectTest(); + //ExioMcp23s17PinDetectTest(); + ExioMcp23s17PinDetectPullModeTest(); }