Trying to debug
Dependencies: mbed TextLCD keypad
keypadandlc.cpp
- Committer:
- baet6458
- Date:
- 2019-01-31
- Revision:
- 5:7aff70602b66
- Parent:
- 4:865b08b6fc74
- Child:
- 6:d2f4c1f6877c
File content as of revision 5:7aff70602b66:
#include "TextLCD.h" #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 '7', '8', '9', 'S', // r2 S = 2nd 'C', '0', ',', 'E' // r3 C = clear, E = enter }; // c0 c1 c2 c3 //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) { //see which key is pressed switch (index){ //if up button is presseed case 3: //do something break; //if down button is pressed case 7: //do something break; //if 2nd button is pressed case 11: //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: //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: //call enter function enterFunc(); 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; } int main() { // r0 r1 r2 r3 c0 c1 c2 c3 Keypad keypad(D0, D1, D2, D3, D10, D11, D12, D13); keypad.attach(&LCDUpdate); keypad.start(); while (1) { //do something eventually } }