Test program for MCP23S17
Dependencies: ExioController MCP23S17 mbed-rtos mbed
Diff: main.cpp
- Revision:
- 7:6c63d0f70ebc
- Parent:
- 6:4f9d08f8dfcf
- Child:
- 8:5a1b267eae1d
--- a/main.cpp Wed Nov 02 04:17:04 2016 +0000 +++ b/main.cpp Wed Nov 02 05:24:53 2016 +0000 @@ -288,25 +288,33 @@ // set PORTA as output Exio.ioDirection(ExioPortA, 0x00); - // set PORTB[0..1] as RotaryEncoder - ExioMcp23s17DigitalIn inB0(Exio, ExioPortB, 0); - ExioMcp23s17DigitalIn inB1(Exio, ExioPortB, 1); - - //RotaryEncoder::RotaryEncoder(ExioMcp23s17DigitalIn& _pin1, ExioMcp23s17DigitalIn& _pin2, int min, int max, int val) - ExioMcp23s17RotaryEncoder RotEnc1(inB0, inB1, 0, 100); - // LED Check (PortA) for (int i = 0; i < 8; i++) { Exio.writePort(ExioPortA, 1 << i); - wait(0.1); + wait(0.2); } Exio.writePort(ExioPortA, 0x00); + + // set PORTB[0..1] as RotaryEncoder + /* + ExioMcp23s17RotaryEncoder( + ExioMcp23s17& device, ExioPort port, int pin1, int pin2, + int min = 0, int max = 100, int val = 50 + ); + */ + ExioMcp23s17RotaryEncoder RotEnc1(Exio, ExioPortB, 0, 1, 0, 0x0f, 0); + + // set PORTB[2..3] as RotaryEncoder + //RotaryEncoder::RotaryEncoder(ExioMcp23s17DigitalIn& _pin1, ExioMcp23s17DigitalIn& _pin2, int min, int max, int val) + ExioMcp23s17RotaryEncoder RotEnc2(Exio, ExioPortB, 2, 3, 0, 0x0f, 0); while (true) { - int data = RotEnc1.getVal(); - //Exio.writePort(ExioPortA, data); - printf("%d\r\n", data); - Thread::wait(100); + int v1 = RotEnc1.getVal(); + int v2 = RotEnc2.getVal(); + uint8_t data = ((uint8_t)v2 << 4) | (uint8_t)v1; + Exio.writePort(ExioPortA, data); + //printf("%d %d\r\n", v1, v2); + Thread::wait(10); } }