Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ExioController MCP23S17 mbed-rtos mbed
Diff: main.cpp
- Revision:
- 6:4f9d08f8dfcf
- Parent:
- 5:69ea7aa2a755
- Child:
- 7:6c63d0f70ebc
--- a/main.cpp Wed Nov 02 03:03:47 2016 +0000 +++ b/main.cpp Wed Nov 02 04:17:04 2016 +0000 @@ -3,6 +3,7 @@ #include "ExioMcp23s17.h" #include "ExioMcp23s17DigitalIn.h" #include "ExioMcp23s17PinDetect.h" +#include "ExioMcp23s17RotaryEncoder.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 @@ -96,6 +97,7 @@ } */ +/* // トグル動作 bool pb0state = false; void pb0Falled() { @@ -136,6 +138,8 @@ void pb7Falled() { Exio.writePort(ExioPortA, (1 << 7)); } +*/ + /* void ExioMcp23s17PinDetectTest() { @@ -202,6 +206,7 @@ } */ +/* void ExioMcp23s17PinDetectPullModeTest() { printf("\r\n\n*** ExioMcp23s17PinDetect PullMode test ***\r\n"); @@ -272,11 +277,44 @@ while (true) { } } +*/ + +void ExioMcp23s17RotaryEncoderTest() +{ + printf("\r\n\n*** ExioMcp23s17RotaryEncoder test ***\r\n"); + + Exio.reset(); + + // 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); + } + Exio.writePort(ExioPortA, 0x00); + + while (true) { + int data = RotEnc1.getVal(); + //Exio.writePort(ExioPortA, data); + printf("%d\r\n", data); + Thread::wait(100); + } +} int main() { //ExioMcp23s17Test(); //ExioMcp23s17DigitalInTest(); //ExioMcp23s17PinDetectTest(); - ExioMcp23s17PinDetectPullModeTest(); + //ExioMcp23s17PinDetectPullModeTest(); + ExioMcp23s17RotaryEncoderTest(); }