Trying to debug
Dependencies: mbed TextLCD keypad
Diff: keypadandlc.cpp
- Revision:
- 5:7aff70602b66
- Parent:
- 4:865b08b6fc74
- Child:
- 6:d2f4c1f6877c
--- a/keypadandlc.cpp Wed Jan 30 03:55:27 2019 +0000 +++ b/keypadandlc.cpp Thu Jan 31 00:40:37 2019 +0000 @@ -2,6 +2,8 @@ #include "mbed.h" #include "Keypad.h" #include <string> +//define lcd pins deafault 16x2 +TextLCD lcd(D8,D9, D4, D5, D6, D7); // rs, e, d4, d5, d6, d7 // Define your own keypad values char Keytable[] = { '1', '2', '3', 'U', // r0 U = up '4', '5', '6', 'D', // r1 D = down @@ -12,14 +14,29 @@ //displayed menu items const char* menu[]={"Select harness:","1. Harness A","2. Harness B","3. Harness C","4. Harness D","5. Harness E","6. Harness F","7. Harness G","8. Harness H","9. Harness I","Test in progress"}; + + //array to display and tracker + char LCDdisplay[16]; + int displayTracker=0; //key presesed holder int keyTracker=0; + bool special =false; + //enter function void enterFunc(){ //do something eventually } + +void updateDisplayArray(int pos, bool comma=false){ + if (comma == false) + LCDdisplay[displayTracker]=Keytable[pos]; + else + LCDdisplay[displayTracker]='-'; + + special=false; + } uint32_t LCDUpdate(uint32_t index) { @@ -37,16 +54,26 @@ //if 2nd button is pressed case 11: - // do something + //say if 2nd is pressed + special=!special; break; //if clear is pressed case 12: //reset key Tracker keyTracker=0; + //put blanks back in array + for(int i=0;i<16;i++){ + LCDdisplay[i]='\b'; + } break; //if comma is pressed case 14: - //do something + //if 2nd is pressed put in dash + if (special==true) + updateDisplayArray(index,special); + else + //otherwise it is a comma + updateDisplayArray(index); break; //if enter is pressed case 15: @@ -55,10 +82,17 @@ break; default://update the keypressed + + //may remove this later keyTracker=keyTracker*10+int(Keytable[index]); + + updateDisplayArray(index); + } - + displayTracker++; + if(displayTracker>16) + displayTracker=0; return 0; }