morse keyboard
main.cpp
- Committer:
- 771_8bit
- Date:
- 2019-09-18
- Revision:
- 0:b1cdb25efab3
File content as of revision 0:b1cdb25efab3:
#include "mbed.h"
#include "TextLCD.h"
#define chatter 100
TextLCD lcd(P0_22, P0_11, P0_10, P0_7, P0_9, P0_8); // rs, e, d4-d7
DigitalIn button_short(P0_12,PullUp);
DigitalIn button_long(P0_14,PullUp);
DigitalIn button_enter(P0_13,PullUp);
int button_short_count;
int button_long_count;
int button_enter_count;
int input;
int input_log;
char morse[16];
int cursor;
int input_cursor;
void init()
{
button_short_count=0;
button_long_count=0;
input=0;
input_log=0;
morse[16];
cursor=0;
input_cursor=0;
lcd.cls();
lcd.locate(0, 0);
lcd.printf("ニ\n");
while(!(button_short && button_long && button_enter)){
}
}
char morse_code(int morse){
char moji;
if (morse==0){moji=' ';
}else if (morse==13){moji='A';
}else if (morse==3111){moji='B';
}else if (morse==3131){moji='C';
}else if (morse==311){moji='D';
}else if (morse==1){moji='E';
}else if (morse==1131){moji='F';
}else if (morse==331){moji='G';
}else if (morse==1111){moji='H';
}else if (morse==11){moji='I';
}else if (morse==1333){moji='J';
}else if (morse==313){moji='K';
}else if (morse==1311){moji='L';
}else if (morse==33){moji='M';
}else if (morse==31){moji='N';
}else if (morse==333){moji='O';
}else if (morse==1331){moji='P';
}else if (morse==3313){moji='Q';
}else if (morse==131){moji='R';
}else if (morse==111){moji='S';
}else if (morse==3){moji='T';
}else if (morse==113){moji='U';
}else if (morse==1113){moji='V';
}else if (morse==133){moji='W';
}else if (morse==3113){moji='X';
}else if (morse==3133){moji='Y';
}else if (morse==3311){moji='Z';
}else if (morse==13333){moji='1';
}else if (morse==11333){moji='2';
}else if (morse==11133){moji='3';
}else if (morse==11113){moji='4';
}else if (morse==11111){moji='5';
}else if (morse==31111){moji='6';
}else if (morse==33111){moji='7';
}else if (morse==33311){moji='8';
}else if (morse==33331){moji='9';
}else if (morse==33333){moji='0';
}else if (morse==131313){moji='.';
}else if (morse==331133){moji=',';
}else if (morse==333111){moji=':';
}else if (morse==113311){moji='?';
}else if (morse==311113){moji='-';
}else if (morse==31331){moji='(';
}else if (morse==313313){moji=')';
}else if (morse==31131){moji='/';
}else if (morse==31113){moji='=';
}else if (morse==13131){moji='+';
}else if (morse==131131){moji='"';
}else if (morse==3113){moji='*';
}else if (morse==133131){moji='@';
}else{moji=' ';}
return moji;
}
int main()
{
//灰・1 黒ー2 赤enter
init();
for(;;) {
if(input_log!=input) {
lcd.locate(0, 1);
//lcd.printf("%d\n",input);
input_log=input;
}
if(button_short==0) {
button_short_count+=1;
if(button_short_count==chatter) {
input = input*10 + 1;
lcd.locate(input_cursor, 1);
lcd.putc(0b10100101);
input_cursor++;
}
} else {
button_short_count=0;
}
if(button_long==0) {
button_long_count+=1;
if(button_long_count==chatter) {
input = input*10 + 3;
lcd.locate(input_cursor, 1);
lcd.putc('-');
input_cursor++;
}
} else {
button_long_count=0;
}
if(button_enter==0) {
button_enter_count+=1;
if(button_enter_count==chatter) {
if(button_short_count>chatter && button_short_count>chatter) {
init();
}else{
//入力行
lcd.locate(0, 1);
lcd.printf(" ");
//アルファベット表示行
lcd.locate(cursor, 0);
lcd.putc(morse_code(input));
button_short_count=0;
button_long_count=0;
input=0;
input_log=0;
cursor++;
input_cursor=0;
}
}
} else {
button_enter_count=0;
}
}
}