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
         }
         
}