Published for Bernard

Dependencies:   DebounceIn USBDevice mbed

main.cpp

Committer:
figlax
Date:
2015-09-15
Revision:
8:6f46e3682189
Parent:
7:0b2dfff14976

File content as of revision 8:6f46e3682189:

#include "mbed.h"
#include "DebounceIn.h"
//must import cookbook debounce library into project

DigitalOut myled(LED3);

DigitalOut myled2(LED1);

DigitalOut myled3(LED2);

Serial pc(USBTX, USBRX); // tx, rx
DigitalIn button(D3);
DigitalIn button2(D4);
DigitalIn button3(D5);
DigitalIn button4(D6);
DigitalIn button5(D7);
DigitalIn button6(D8);
DigitalIn button7(D9);
DigitalIn button8(D10);
DebounceIn toggle(D2);
DebounceIn enter(D11);
DigitalOut led1(D14);
DigitalOut led2(D13);

int main() {
    
    //initiate button modes to use internal pull up resistor
    button.mode(PullUp); 
    button2.mode(PullUp);
    button3.mode(PullUp);
    button4.mode(PullUp);
    button5.mode(PullUp);
    button6.mode(PullUp);
    button7.mode(PullUp);
    button8.mode(PullUp);
    toggle.mode(PullUp);
    enter.mode(PullUp);
    
    wait(0.001);
    
    //initiate counters and other variables
    
    int enter_old=1;
    int enter_new;
    int toggle_old=1;
    int toggle_new;
    int button_counter=0;
    int button2_counter=0;
    int button3_counter=0;
    int button4_counter=0;
    int button5_counter=0;
    int button6_counter=0;
    int button7_counter=0;
    int button8_counter=0;
    int ec=0;
    
    int n=0;
    int t=0;
    
    int l=3;
    int l2=3;
    int l3=3;
    int l4=3;
    int l5=3;
    int l6=4;
    int l7=4;
    int l8=4;
    
    
    char* s[26] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};
    
    myled=1;
    myled3=1;
    
    myled2=0;
    wait(0.4);
    myled2=1;
    wait(0.4);
    myled2=0;
    wait(0.4);
    myled2=1;
    wait(0.4);
    myled2=0;
    wait(0.4);
    myled2=1;
    wait(0.4);
    
    myled=0;
    wait(0.4);
    myled=1;
    
    
    

    while(1) {
        enter_new = enter.read();
        if((enter_new==0) && (enter_old==1)) {
            myled3= 0;
            wait(0.2);
            myled3= 1;
            n=1;
            if (button.read()==0) {
                pc.printf("%s", s[button_counter]); 
                button_counter=0;
                n=0;
            }
            if (button2.read()==0) {
                button2_counter= button2_counter + l;
                pc.printf("%s", s[button2_counter]); 
                button2_counter=0;
                n=0;
            }
            if (button3.read()==0) {
                button3_counter= button3_counter + l + l2;
                pc.printf("%s", s[button3_counter]); 
                button3_counter=0;
                n=0;
            }
             if (button4.read()==0) {
                button4_counter= button4_counter + l + l2 + l3;
                pc.printf("%s", s[button4_counter]); 
                button4_counter=0;
                n=0;
            }
            if (button5.read()==0) {
                button5_counter= button5_counter + l + l2 + l3 + l4;
                pc.printf("%s", s[button5_counter]); 
                button5_counter=0;
                n=0;
            }
             if (button6.read()==0) {
                button6_counter= button6_counter + l + l2 + l3 + l4 + l5;
                pc.printf("%s", s[button6_counter]); 
                button6_counter=0;
                n=0;
            }
             if (button7.read()==0) {
                button7_counter= button7_counter + l + l2 + l3 + l4 + l5 +l6;
                pc.printf("%s", s[button7_counter]); 
                button7_counter=0;
                n=0;
            }
            if (button8.read()==0) {
                button8_counter= button8_counter + l + l2 + l3 + l4 + l5 +l6 + l7;
                pc.printf("%s", s[button8_counter]); 
                button8_counter=0;
                n=0;
            } 
            if (n==1) {
                if (ec>1){
                    pc.printf(" ");
                }
                ec=0;
                n=0;
            }
            button_counter=0;
            button2_counter=0;
            button3_counter=0;
            button4_counter=0;
            button5_counter=0;
            button6_counter=0;
            button7_counter=0;
            button8_counter=0;
            
            
        }
        enter_old= enter_new;   
        
        
        toggle_new = toggle.read();
        if ((toggle_new==0) && (toggle_old==1)) {
            t=1;
            myled= 0;
            wait(0.2);
            myled= 1;
            
            if (button.read()==0) {
                button_counter= button_counter + 1;
                button2_counter=0;
                button3_counter=0;
                button4_counter=0;
                button5_counter=0;
                button6_counter=0;
                button7_counter=0;
                button8_counter=0;
                if (button_counter==(l)) {
                    button_counter=0;
                }
                t=0;
                ec=0;
            }
            if (button2.read()==0) {
                button_counter= 0;
                button2_counter= button2_counter + 1;
                button3_counter=0;
                button4_counter=0;
                button5_counter=0;
                button6_counter=0;
                button7_counter=0;
                button8_counter=0;
                if (button2_counter==(l2)) {
                    button2_counter=0;
                }
                t=0;
                ec=0;
            }
            if (button3.read()==0) {
                button_counter= 0;
                button2_counter=0;
                button3_counter= button3_counter + 1;
                button4_counter=0;
                button5_counter=0;
                button6_counter=0;
                button7_counter=0;
                button8_counter=0;
                if (button3_counter==(l3)) {
                    button3_counter=0;
                }
                t=0;
                ec=0;
            }
             if (button4.read()==0) {
                button_counter= 0;
                button2_counter=0;
                button3_counter=0;
                button4_counter= button4_counter + 1;
                button5_counter=0;
                button6_counter=0;
                button7_counter=0;
                button8_counter=0;
                if (button4_counter==(l4)) {
                    button4_counter=0;
                }
                t=0;
                ec=0;
            }
            if (button5.read()==0) {
                button_counter= 0;
                button2_counter=0;
                button3_counter=0;
                button4_counter=0;
                button5_counter= button5_counter + 1;
                button6_counter=0;
                button7_counter=0;
                button8_counter=0;
                if (button5_counter==(l5)) {
                    button5_counter=0;
                }
                t=0;
                ec=0;
            }
            if (button6.read()==0) {
                button_counter= 0;
                button2_counter=0;
                button3_counter=0;
                button4_counter=0;
                button5_counter=0;
                button6_counter= button6_counter + 1;
                button7_counter=0;
                button8_counter=0;
                if (button6_counter==(l6)) {
                    button6_counter=0;
                }
                t=0;
                ec=0;
            }
            if (button7.read()==0) {
                button_counter= 0;
                button2_counter=0;
                button3_counter=0;
                button4_counter=0;
                button5_counter=0;
                button6_counter=0;
                button7_counter= button7_counter + 1;
                button8_counter=0;
                if (button7_counter==(l7)) {
                    button7_counter=0;
                }
                t=0;
                ec=0;
            }
            if (button8.read()==0) {
                button_counter= 0;
                button2_counter=0;
                button3_counter=0;
                button4_counter=0;
                button5_counter=0;
                button6_counter=0;
                button7_counter=0;
                button8_counter=button8_counter + 1;
                if (button8_counter==(l8)) {
                    button8_counter=0;
                }
                t=0;
                ec=0;
            }
            if (t==1){
                ec= ec+1; 
                //unsure if all button counters should be set to zero here. 
            }
        }
        toggle_old= toggle_new; 
        
        
        
        
        
        
    }
}