![](/media/cache/profiles/2e92962c0b6996add9517e4242ea9bdc.50x50_q85.jpg)
Test application for the library MCP23017_I2C
Dependencies: DebugLibrary MCP23017_I2C mbed
main.cpp
- Committer:
- Yann
- Date:
- 2015-01-07
- Revision:
- 0:1d91b4046326
- Child:
- 1:e981573db063
File content as of revision 0:1d91b4046326:
#include <string> #include <iostream> #include <iomanip> #include "MCP23017_I2C.h" /* * Declare functions */ void AvailableIndicator(); // LED1 flashing for program while program is alive DigitalOut g_availableLed(LED1); // To verify if program in running Ticker g_available; // LED1 will flash with a period of 2s char DisplayMenuAndGetChoice(); static CMCP23017_I2C g_gpioExp(p9, p10, 0x27, p15, p16, p17); int main() { // Launch available indicator g_available.attach(&AvailableIndicator, 2.0); g_gpioExp.Initialize(); while(true) { switch (DisplayMenuAndGetChoice()) { case 'a': g_gpioExp.write(GPB0, 1); break; case 'b': g_gpioExp.write(GPB0, 0); break; case 'c': g_gpioExp.write(GPB2, 1); break; case 'd': g_gpioExp.write(GPB2, 0); break; case 'r': g_gpioExp.reset(); break; default: std::cout << "Invalid user choice\r" << std::endl; break; } // End of 'switch' statement } // End of 'while' loop } void AvailableIndicator() { g_availableLed = !g_availableLed; } // End of AvailableIndicator char DisplayMenuAndGetChoice() { char value; std::cout << "\r" << std::endl << "\r" << std::endl << "MCP23017_I2C v0.1\r" << std::endl; std::cout << "\tSet PortB-0 :\t\ta\r" << std::endl; std::cout << "\tUnset PortB-0 :\t\tb\r" << std::endl; std::cout << "\tUnset PortB-2 :\t\tc\r" << std::endl; std::cout << "\tUnset PortB-2 :\t\td\r" << std::endl; std::cout << "\tReset device :\t\tr\r" << std::endl; std::cout << "Enter your choice: " << std::flush; value = getchar(); std::cout << "\r" << std::endl; return value; }