MorseCodeGenerator

Dependencies:   beep mbed tsi_sensor

main.cpp

Committer:
pb300396
Date:
2017-04-02
Revision:
0:feeb8cbe962c
Child:
1:4ae13b5973d7

File content as of revision 0:feeb8cbe962c:

#include "mbed.h"
#include "tsi_sensor.h"
#include"beep.h"

#if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
#define ELEC0 9
#define ELEC1 10
#elif defined (TARGET_KL05Z)
#define ELEC0 9
#define ELEC1 8
#else
#error TARGET NOT DEFINED
#endif

int morse[26] = {21,1112,1212,112,1,1211,122,1111,11,2221,
                212,1121,22,12,222,1221,2122,121,111,2,
                211,2111,221,2112,2212,1122};
int  divisor = 10;      //set divisor, for blinking speed
float slider = -1.0; 


DigitalOut buzzer(PTB0);
Serial pc(USBTX,USBRX);
int count =0;
int main(){
    int alpha_input;
    int temp,c,t;
    TSIAnalogSlider tsi(ELEC0, ELEC1, 80);
    pc.printf("Please enter the letter to hear morse \n");
    
    while(1){
       if(pc.readable()){
           alpha_input = pc.getc();
           pc.putc(alpha_input);
           pc.printf("\n yo %d : ",(int)alpha_input);
           if(alpha_input<123 && alpha_input>96){
               alpha_input=alpha_input - 97; 
               }
               
           else if(alpha_input<91 &&alpha_input>64){
               alpha_input=alpha_input-65;
               }
               
            else{
                pc.printf("Invalid character\n");
                
                }
                
                c=alpha_input;
                
                if(c>=0 && c<26)
                {
                    temp = morse[c];
                    while(temp!=0){
                        t=temp%10;
                        temp=temp/10;
                        if(t==1){
                            buzzer=1;
                            wait(0.1);
                            buzzer=0;
                            pc.putc('.');
                            }
                            
                        else if(t==2){
                            buzzer=1;
                            wait(0.25);
                            buzzer=0;
                            pc.putc('-');
                            }
                            wait(0.2);
                        }
                    }
           wait(0.5);
           }
           
           if(tsi.readPercentage() != 0) {   
            count = count +1;                   //check if slider is tuched, if tuched slider != 0
            slider = tsi.readPercentage(); 
                //set slidervalue ( / divisor )
        
        
        if(slider>0 && slider<0.5){
                            buzzer=1;
                            wait(0.1);
                            buzzer=0;
                            pc.printf(".");
            }
        if(slider>0.5 && slider<0.98){
                            buzzer=1;
                            wait(0.25);
                            buzzer=0;
                            pc.printf("-");
            }    
            }
 }   
}