Test application for the library MCP23017_I2C
Dependencies: DebugLibrary MCP23017_I2C mbed
main.cpp@0:1d91b4046326, 2015-01-07 (annotated)
- Committer:
- Yann
- Date:
- Wed Jan 07 09:49:59 2015 +0000
- Revision:
- 0:1d91b4046326
- Child:
- 1:e981573db063
Start implementing support of MCP28017
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Yann | 0:1d91b4046326 | 1 | #include <string> |
| Yann | 0:1d91b4046326 | 2 | #include <iostream> |
| Yann | 0:1d91b4046326 | 3 | #include <iomanip> |
| Yann | 0:1d91b4046326 | 4 | |
| Yann | 0:1d91b4046326 | 5 | #include "MCP23017_I2C.h" |
| Yann | 0:1d91b4046326 | 6 | |
| Yann | 0:1d91b4046326 | 7 | /* |
| Yann | 0:1d91b4046326 | 8 | * Declare functions |
| Yann | 0:1d91b4046326 | 9 | */ |
| Yann | 0:1d91b4046326 | 10 | void AvailableIndicator(); // LED1 flashing for program while program is alive |
| Yann | 0:1d91b4046326 | 11 | DigitalOut g_availableLed(LED1); // To verify if program in running |
| Yann | 0:1d91b4046326 | 12 | Ticker g_available; // LED1 will flash with a period of 2s |
| Yann | 0:1d91b4046326 | 13 | char DisplayMenuAndGetChoice(); |
| Yann | 0:1d91b4046326 | 14 | |
| Yann | 0:1d91b4046326 | 15 | static CMCP23017_I2C g_gpioExp(p9, p10, 0x27, p15, p16, p17); |
| Yann | 0:1d91b4046326 | 16 | |
| Yann | 0:1d91b4046326 | 17 | int main() { |
| Yann | 0:1d91b4046326 | 18 | // Launch available indicator |
| Yann | 0:1d91b4046326 | 19 | g_available.attach(&AvailableIndicator, 2.0); |
| Yann | 0:1d91b4046326 | 20 | |
| Yann | 0:1d91b4046326 | 21 | g_gpioExp.Initialize(); |
| Yann | 0:1d91b4046326 | 22 | |
| Yann | 0:1d91b4046326 | 23 | while(true) { |
| Yann | 0:1d91b4046326 | 24 | switch (DisplayMenuAndGetChoice()) { |
| Yann | 0:1d91b4046326 | 25 | case 'a': |
| Yann | 0:1d91b4046326 | 26 | g_gpioExp.write(GPB0, 1); |
| Yann | 0:1d91b4046326 | 27 | break; |
| Yann | 0:1d91b4046326 | 28 | case 'b': |
| Yann | 0:1d91b4046326 | 29 | g_gpioExp.write(GPB0, 0); |
| Yann | 0:1d91b4046326 | 30 | break; |
| Yann | 0:1d91b4046326 | 31 | case 'c': |
| Yann | 0:1d91b4046326 | 32 | g_gpioExp.write(GPB2, 1); |
| Yann | 0:1d91b4046326 | 33 | break; |
| Yann | 0:1d91b4046326 | 34 | case 'd': |
| Yann | 0:1d91b4046326 | 35 | g_gpioExp.write(GPB2, 0); |
| Yann | 0:1d91b4046326 | 36 | break; |
| Yann | 0:1d91b4046326 | 37 | case 'r': |
| Yann | 0:1d91b4046326 | 38 | g_gpioExp.reset(); |
| Yann | 0:1d91b4046326 | 39 | break; |
| Yann | 0:1d91b4046326 | 40 | default: |
| Yann | 0:1d91b4046326 | 41 | std::cout << "Invalid user choice\r" << std::endl; |
| Yann | 0:1d91b4046326 | 42 | break; |
| Yann | 0:1d91b4046326 | 43 | } // End of 'switch' statement |
| Yann | 0:1d91b4046326 | 44 | |
| Yann | 0:1d91b4046326 | 45 | } // End of 'while' loop |
| Yann | 0:1d91b4046326 | 46 | } |
| Yann | 0:1d91b4046326 | 47 | |
| Yann | 0:1d91b4046326 | 48 | void AvailableIndicator() |
| Yann | 0:1d91b4046326 | 49 | { |
| Yann | 0:1d91b4046326 | 50 | g_availableLed = !g_availableLed; |
| Yann | 0:1d91b4046326 | 51 | } // End of AvailableIndicator |
| Yann | 0:1d91b4046326 | 52 | |
| Yann | 0:1d91b4046326 | 53 | char DisplayMenuAndGetChoice() |
| Yann | 0:1d91b4046326 | 54 | { |
| Yann | 0:1d91b4046326 | 55 | char value; |
| Yann | 0:1d91b4046326 | 56 | std::cout << "\r" << std::endl << "\r" << std::endl << "MCP23017_I2C v0.1\r" << std::endl; |
| Yann | 0:1d91b4046326 | 57 | std::cout << "\tSet PortB-0 :\t\ta\r" << std::endl; |
| Yann | 0:1d91b4046326 | 58 | std::cout << "\tUnset PortB-0 :\t\tb\r" << std::endl; |
| Yann | 0:1d91b4046326 | 59 | std::cout << "\tUnset PortB-2 :\t\tc\r" << std::endl; |
| Yann | 0:1d91b4046326 | 60 | std::cout << "\tUnset PortB-2 :\t\td\r" << std::endl; |
| Yann | 0:1d91b4046326 | 61 | std::cout << "\tReset device :\t\tr\r" << std::endl; |
| Yann | 0:1d91b4046326 | 62 | std::cout << "Enter your choice: " << std::flush; |
| Yann | 0:1d91b4046326 | 63 | value = getchar(); |
| Yann | 0:1d91b4046326 | 64 | std::cout << "\r" << std::endl; |
| Yann | 0:1d91b4046326 | 65 | return value; |
| Yann | 0:1d91b4046326 | 66 | } |
Yann Garcia