Test program for MCP23S17
Dependencies: ExioController MCP23S17 mbed-rtos mbed
Diff: main.cpp
- Revision:
- 9:01dfe4fe7d21
- Parent:
- 8:5a1b267eae1d
- Child:
- 10:72220f282a8d
--- a/main.cpp Wed Nov 02 06:13:07 2016 +0000 +++ b/main.cpp Wed Nov 02 09:15:27 2016 +0000 @@ -4,6 +4,7 @@ #include "ExioMcp23s17DigitalIn.h" #include "ExioMcp23s17PinDetect.h" #include "ExioMcp23s17RotaryEncoder.h" +#include "ExioMcp23s17Keypad4x4.h" SPI Spi(PC_12, PC_11, PC_10); // SPI3: mosi, miso, sclk //SPI Spi(PA_7, PA_6, PA_5); // SPI1: mosi, miso, sclk @@ -43,7 +44,7 @@ } } */ - +/* void ExioMcp23s17RevTest() { printf("\r\n\n*** ExioMcp23s17 Rev ***\r\n"); @@ -74,7 +75,7 @@ Exio.writePort(ExioPortB, data); } } - +*/ /* void ExioMcp23s17DigitalInTest() { @@ -351,12 +352,42 @@ } } */ + +void ExioMcp23s17Keypad4x4Test() +{ + printf("\r\n\n*** ExioMcp23s17Keypad4x4 test ***\r\n"); + + Exio.reset(); + + // set PORTB as output + Exio.ioDirection(ExioPortB, 0x00); + + // LED Check (PortB) + for (int i = 0; i < 8; i++) { + Exio.writePort(ExioPortB, 1 << i); + wait(0.2); + } + Exio.writePort(ExioPortB, 0x00); + + // set PORTA as Keypad 4x4 + ExioMcp23s17Keypad4x4 keypad(Exio, ExioPortA); + + while (true) { + int v = keypad.keyScan(); + //printf("%d\r\n", v); + if (v != -1) { + Exio.writePort(ExioPortB, v); + } + } +} + int main() { //ExioMcp23s17Test(); - ExioMcp23s17RevTest(); + //ExioMcp23s17RevTest(); //ExioMcp23s17DigitalInTest(); //ExioMcp23s17PinDetectTest(); //ExioMcp23s17PinDetectPullModeTest(); //ExioMcp23s17RotaryEncoderTest(); + ExioMcp23s17Keypad4x4Test(); }