KPC / Mbed 2 deprecated morse

Dependencies:   mbed TextLCD

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "TextLCD.h"
00003 #define chatter 100
00004 
00005 TextLCD lcd(P0_22, P0_11, P0_10, P0_7, P0_9, P0_8); // rs, e, d4-d7
00006 DigitalIn button_short(P0_12,PullUp);
00007 DigitalIn button_long(P0_14,PullUp);
00008 DigitalIn button_enter(P0_13,PullUp);
00009 int button_short_count;
00010 int button_long_count;
00011 int button_enter_count;
00012 int input;
00013 int input_log;
00014 char morse[16];
00015 int cursor;
00016 int input_cursor;
00017 
00018 void init()
00019 {
00020     button_short_count=0;
00021     button_long_count=0;
00022     input=0;
00023     input_log=0;
00024     morse[16];
00025     cursor=0;
00026     input_cursor=0;
00027     lcd.cls();
00028     lcd.locate(0, 0);
00029     lcd.printf("ニ\n");
00030     while(!(button_short && button_long && button_enter)){
00031     }
00032 }
00033 
00034 char morse_code(int morse){
00035     char moji;
00036     if (morse==0){moji=' ';
00037     }else if (morse==13){moji='A';
00038     }else if (morse==3111){moji='B';
00039     }else if (morse==3131){moji='C';
00040     }else if (morse==311){moji='D';
00041     }else if (morse==1){moji='E';
00042     }else if (morse==1131){moji='F';
00043     }else if (morse==331){moji='G';
00044     }else if (morse==1111){moji='H';
00045     }else if (morse==11){moji='I';
00046     }else if (morse==1333){moji='J';
00047     }else if (morse==313){moji='K';
00048     }else if (morse==1311){moji='L';
00049     }else if (morse==33){moji='M';
00050     }else if (morse==31){moji='N';
00051     }else if (morse==333){moji='O';
00052     }else if (morse==1331){moji='P';
00053     }else if (morse==3313){moji='Q';
00054     }else if (morse==131){moji='R';
00055     }else if (morse==111){moji='S';
00056     }else if (morse==3){moji='T';
00057     }else if (morse==113){moji='U';
00058     }else if (morse==1113){moji='V';
00059     }else if (morse==133){moji='W';
00060     }else if (morse==3113){moji='X';
00061     }else if (morse==3133){moji='Y';
00062     }else if (morse==3311){moji='Z';
00063     }else if (morse==13333){moji='1';
00064     }else if (morse==11333){moji='2';
00065     }else if (morse==11133){moji='3';
00066     }else if (morse==11113){moji='4';
00067     }else if (morse==11111){moji='5';
00068     }else if (morse==31111){moji='6';
00069     }else if (morse==33111){moji='7';
00070     }else if (morse==33311){moji='8';
00071     }else if (morse==33331){moji='9';
00072     }else if (morse==33333){moji='0';
00073     }else if (morse==131313){moji='.';
00074     }else if (morse==331133){moji=',';
00075     }else if (morse==333111){moji=':';
00076     }else if (morse==113311){moji='?';
00077     }else if (morse==311113){moji='-';
00078     }else if (morse==31331){moji='(';
00079     }else if (morse==313313){moji=')';
00080     }else if (morse==31131){moji='/';
00081     }else if (morse==31113){moji='=';
00082     }else if (morse==13131){moji='+';
00083     }else if (morse==131131){moji='"';
00084     }else if (morse==3113){moji='*';
00085     }else if (morse==133131){moji='@';
00086     }else{moji=' ';}
00087     return moji;
00088 }
00089 
00090 
00091 
00092 int main()
00093 {
00094     //灰・1 黒ー2 赤enter
00095     init();
00096 
00097     for(;;) {
00098         if(input_log!=input) {
00099             lcd.locate(0, 1);
00100             //lcd.printf("%d\n",input);
00101             input_log=input;
00102         }
00103         
00104         if(button_short==0) {
00105             button_short_count+=1;
00106             if(button_short_count==chatter) {
00107                 input = input*10 + 1;
00108                 lcd.locate(input_cursor, 1);
00109                 lcd.putc(0b10100101); 
00110                 input_cursor++;
00111             }
00112         } else {
00113             button_short_count=0;
00114         }
00115 
00116         if(button_long==0) {
00117             button_long_count+=1;
00118             if(button_long_count==chatter) {
00119                 input = input*10 + 3;
00120                 lcd.locate(input_cursor, 1);
00121                 lcd.putc('-'); 
00122                 input_cursor++;
00123             }
00124         } else {
00125             button_long_count=0;
00126         }
00127 
00128         if(button_enter==0) {
00129             button_enter_count+=1;
00130             if(button_enter_count==chatter) {
00131                 if(button_short_count>chatter && button_short_count>chatter) {
00132                     init();
00133                 }else{       
00134                     //入力行     
00135                     lcd.locate(0, 1);
00136                     lcd.printf("               ");
00137                     //アルファベット表示行
00138                     lcd.locate(cursor, 0);
00139                     lcd.putc(morse_code(input));                                    
00140                     button_short_count=0;
00141                     button_long_count=0;
00142                     input=0;
00143                     input_log=0;
00144                     cursor++;
00145                     input_cursor=0;
00146                 }
00147             }
00148         } else {
00149             button_enter_count=0;
00150         }
00151     }
00152 }