エレキジャックweb mbed入門 mbed CWデコーダ 完成形です。CWd Ver1.0とします。細かなバグを修正してあります。デコーダ基板が必要です。

Dependencies:   mbed

Committer:
takeuchi
Date:
Mon Jul 16 06:34:02 2012 +0000
Revision:
0:3e0f52f529fc
???????web mbed?? mbed CW??????12???CQ????????????????????????????????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:3e0f52f529fc 1 // CW13 = CWd Ver1.0
takeuchi 0:3e0f52f529fc 2 // BT AR taiou
takeuchi 0:3e0f52f529fc 3 // Wabun
takeuchi 0:3e0f52f529fc 4 // SW tuika
takeuchi 0:3e0f52f529fc 5 // hore taiou
takeuchi 0:3e0f52f529fc 6 // wabun (OUBUN) wabun
takeuchi 0:3e0f52f529fc 7 // CQ hore taiou
takeuchi 0:3e0f52f529fc 8
takeuchi 0:3e0f52f529fc 9 #include "mbed.h"
takeuchi 0:3e0f52f529fc 10 #include "TextLCD0420.h"
takeuchi 0:3e0f52f529fc 11
takeuchi 0:3e0f52f529fc 12 #define ON 1
takeuchi 0:3e0f52f529fc 13 #define OFF 0
takeuchi 0:3e0f52f529fc 14 #define XON 0
takeuchi 0:3e0f52f529fc 15 #define XOFF 1
takeuchi 0:3e0f52f529fc 16 #define XHI 0
takeuchi 0:3e0f52f529fc 17 #define XLOW 1
takeuchi 0:3e0f52f529fc 18 #define HI 1
takeuchi 0:3e0f52f529fc 19 #define LOW
takeuchi 0:3e0f52f529fc 20 #define OUBUN 1
takeuchi 0:3e0f52f529fc 21 #define WABUN 0
takeuchi 0:3e0f52f529fc 22 #define AUTO 1
takeuchi 0:3e0f52f529fc 23 #define MANUAL 0
takeuchi 0:3e0f52f529fc 24 #define KN 44
takeuchi 0:3e0f52f529fc 25 #define AS 33
takeuchi 0:3e0f52f529fc 26 #define CT 52
takeuchi 0:3e0f52f529fc 27 #define BT 48
takeuchi 0:3e0f52f529fc 28 #define AR 41
takeuchi 0:3e0f52f529fc 29 #define HH 255
takeuchi 0:3e0f52f529fc 30 #define VA 103
takeuchi 0:3e0f52f529fc 31 #define HORE 120
takeuchi 0:3e0f52f529fc 32 #define RATA 39
takeuchi 0:3e0f52f529fc 33
takeuchi 0:3e0f52f529fc 34 DigitalOut mled1(LED1);
takeuchi 0:3e0f52f529fc 35 DigitalOut mled2(LED2);
takeuchi 0:3e0f52f529fc 36 DigitalOut mled3(LED3);
takeuchi 0:3e0f52f529fc 37 DigitalOut mled4(LED4);
takeuchi 0:3e0f52f529fc 38 DigitalIn CW(p5);
takeuchi 0:3e0f52f529fc 39 DigitalIn SP_SELECT(p6);
takeuchi 0:3e0f52f529fc 40 DigitalIn GENGO_MODE(p7);
takeuchi 0:3e0f52f529fc 41 DigitalIn GENGO_SELECT(p8);
takeuchi 0:3e0f52f529fc 42
takeuchi 0:3e0f52f529fc 43 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:3e0f52f529fc 44
takeuchi 0:3e0f52f529fc 45 int retu,gyou;
takeuchi 0:3e0f52f529fc 46 char g2[20],g3[20];
takeuchi 0:3e0f52f529fc 47 int init_flag=ON;
takeuchi 0:3e0f52f529fc 48 int min_ms,max_ms;
takeuchi 0:3e0f52f529fc 49 int gengo,wabun_temp;
takeuchi 0:3e0f52f529fc 50
takeuchi 0:3e0f52f529fc 51 void lcd_scprintf(char pdata){
takeuchi 0:3e0f52f529fc 52 int i;
takeuchi 0:3e0f52f529fc 53
takeuchi 0:3e0f52f529fc 54 if(init_flag==ON){
takeuchi 0:3e0f52f529fc 55 if(gyou==1){
takeuchi 0:3e0f52f529fc 56 lcd.locate(retu,1);
takeuchi 0:3e0f52f529fc 57 lcd.printf("%c",pdata);
takeuchi 0:3e0f52f529fc 58 retu++;
takeuchi 0:3e0f52f529fc 59 if(retu==20){
takeuchi 0:3e0f52f529fc 60 gyou=2;
takeuchi 0:3e0f52f529fc 61 retu=0;
takeuchi 0:3e0f52f529fc 62 }
takeuchi 0:3e0f52f529fc 63 }
takeuchi 0:3e0f52f529fc 64 else if(gyou==2){
takeuchi 0:3e0f52f529fc 65 lcd.locate(retu,2);
takeuchi 0:3e0f52f529fc 66 lcd.printf("%c",pdata);
takeuchi 0:3e0f52f529fc 67 g2[retu]=pdata;
takeuchi 0:3e0f52f529fc 68 retu++;
takeuchi 0:3e0f52f529fc 69 if(retu==20){
takeuchi 0:3e0f52f529fc 70 retu=0;
takeuchi 0:3e0f52f529fc 71 gyou=3;
takeuchi 0:3e0f52f529fc 72 }
takeuchi 0:3e0f52f529fc 73 }
takeuchi 0:3e0f52f529fc 74 else if(gyou==3){
takeuchi 0:3e0f52f529fc 75 lcd.locate(retu,3);
takeuchi 0:3e0f52f529fc 76 lcd.printf("%c",pdata);
takeuchi 0:3e0f52f529fc 77 g3[retu]=pdata;
takeuchi 0:3e0f52f529fc 78 retu++;
takeuchi 0:3e0f52f529fc 79 if(retu==20){
takeuchi 0:3e0f52f529fc 80 retu=0;
takeuchi 0:3e0f52f529fc 81 gyou=1;
takeuchi 0:3e0f52f529fc 82 for(i=0;i<20;i++){
takeuchi 0:3e0f52f529fc 83 lcd.locate(i,1);
takeuchi 0:3e0f52f529fc 84 lcd.printf("%c",g2[i]);
takeuchi 0:3e0f52f529fc 85 }
takeuchi 0:3e0f52f529fc 86 for(i=0;i<20;i++){
takeuchi 0:3e0f52f529fc 87 lcd.locate(i,2);
takeuchi 0:3e0f52f529fc 88 lcd.printf("%c",g3[i]);
takeuchi 0:3e0f52f529fc 89 g2[i]=g3[i];
takeuchi 0:3e0f52f529fc 90 }
takeuchi 0:3e0f52f529fc 91 lcd.locate(0,3);
takeuchi 0:3e0f52f529fc 92 lcd.printf(" ");
takeuchi 0:3e0f52f529fc 93 init_flag=OFF;
takeuchi 0:3e0f52f529fc 94 }
takeuchi 0:3e0f52f529fc 95 }
takeuchi 0:3e0f52f529fc 96 }
takeuchi 0:3e0f52f529fc 97 if(init_flag==OFF){
takeuchi 0:3e0f52f529fc 98 gyou=3;
takeuchi 0:3e0f52f529fc 99 lcd.locate(retu,3);
takeuchi 0:3e0f52f529fc 100 lcd.printf("%c",pdata);
takeuchi 0:3e0f52f529fc 101 g3[retu]=pdata;
takeuchi 0:3e0f52f529fc 102 retu++;
takeuchi 0:3e0f52f529fc 103 if(retu==20){
takeuchi 0:3e0f52f529fc 104 for(i=0;i<20;i++){
takeuchi 0:3e0f52f529fc 105 lcd.locate(i,1);
takeuchi 0:3e0f52f529fc 106 lcd.printf("%c",g2[i]);
takeuchi 0:3e0f52f529fc 107 lcd.locate(i,2);
takeuchi 0:3e0f52f529fc 108 lcd.printf("%c",g3[i]);
takeuchi 0:3e0f52f529fc 109 g2[i]=g3[i];
takeuchi 0:3e0f52f529fc 110 }
takeuchi 0:3e0f52f529fc 111 lcd.locate(0,3);
takeuchi 0:3e0f52f529fc 112 lcd.printf(" ");
takeuchi 0:3e0f52f529fc 113 retu=0;
takeuchi 0:3e0f52f529fc 114 }
takeuchi 0:3e0f52f529fc 115 }
takeuchi 0:3e0f52f529fc 116 }
takeuchi 0:3e0f52f529fc 117
takeuchi 0:3e0f52f529fc 118 void set_speed(){
takeuchi 0:3e0f52f529fc 119 if(SP_SELECT==HI){
takeuchi 0:3e0f52f529fc 120 min_ms=30;
takeuchi 0:3e0f52f529fc 121 max_ms=90;
takeuchi 0:3e0f52f529fc 122 lcd.locate(5,0);
takeuchi 0:3e0f52f529fc 123 lcd.printf("H");
takeuchi 0:3e0f52f529fc 124 }
takeuchi 0:3e0f52f529fc 125 else{
takeuchi 0:3e0f52f529fc 126 min_ms=70;
takeuchi 0:3e0f52f529fc 127 max_ms=210;
takeuchi 0:3e0f52f529fc 128 lcd.locate(5,0);
takeuchi 0:3e0f52f529fc 129 lcd.printf("L");
takeuchi 0:3e0f52f529fc 130 }
takeuchi 0:3e0f52f529fc 131 }
takeuchi 0:3e0f52f529fc 132
takeuchi 0:3e0f52f529fc 133 void lcd_manual(){
takeuchi 0:3e0f52f529fc 134 lcd.locate(6,0);
takeuchi 0:3e0f52f529fc 135 lcd.printf("M");
takeuchi 0:3e0f52f529fc 136 }
takeuchi 0:3e0f52f529fc 137
takeuchi 0:3e0f52f529fc 138 void lcd_auto(){
takeuchi 0:3e0f52f529fc 139 lcd.locate(6,0);
takeuchi 0:3e0f52f529fc 140 lcd.printf("A");
takeuchi 0:3e0f52f529fc 141 }
takeuchi 0:3e0f52f529fc 142
takeuchi 0:3e0f52f529fc 143 void lcd_alpha(){
takeuchi 0:3e0f52f529fc 144 lcd.locate(7,0);
takeuchi 0:3e0f52f529fc 145 lcd.printf("A");
takeuchi 0:3e0f52f529fc 146 }
takeuchi 0:3e0f52f529fc 147 void lcd_kana(){
takeuchi 0:3e0f52f529fc 148 lcd.locate(7,0);
takeuchi 0:3e0f52f529fc 149 lcd.printf("%c",0xb6);
takeuchi 0:3e0f52f529fc 150 }
takeuchi 0:3e0f52f529fc 151
takeuchi 0:3e0f52f529fc 152 void set_gengo(){
takeuchi 0:3e0f52f529fc 153 if(GENGO_MODE==MANUAL){// Gengo Manual mode
takeuchi 0:3e0f52f529fc 154 lcd_manual();
takeuchi 0:3e0f52f529fc 155 if(GENGO_SELECT==OUBUN){// manual wabun
takeuchi 0:3e0f52f529fc 156 gengo=OUBUN;
takeuchi 0:3e0f52f529fc 157 }
takeuchi 0:3e0f52f529fc 158 else if(GENGO_SELECT==WABUN){// manual oubun
takeuchi 0:3e0f52f529fc 159 gengo=WABUN;
takeuchi 0:3e0f52f529fc 160 wabun_temp=WABUN;
takeuchi 0:3e0f52f529fc 161 }
takeuchi 0:3e0f52f529fc 162 }
takeuchi 0:3e0f52f529fc 163 else if(GENGO_MODE==AUTO){// Gengo Auto mode
takeuchi 0:3e0f52f529fc 164 lcd_auto();
takeuchi 0:3e0f52f529fc 165 }
takeuchi 0:3e0f52f529fc 166 }
takeuchi 0:3e0f52f529fc 167
takeuchi 0:3e0f52f529fc 168 int main() {
takeuchi 0:3e0f52f529fc 169
takeuchi 0:3e0f52f529fc 170 int i,j,k;
takeuchi 0:3e0f52f529fc 171 int code[8];
takeuchi 0:3e0f52f529fc 172 int scount;
takeuchi 0:3e0f52f529fc 173 char mj[115],mjj[121],c1,c2;
takeuchi 0:3e0f52f529fc 174 int cw_sum,tan_sum,tanten,cpm;
takeuchi 0:3e0f52f529fc 175 char cw_class;
takeuchi 0:3e0f52f529fc 176
takeuchi 0:3e0f52f529fc 177 // Alphabet
takeuchi 0:3e0f52f529fc 178 for(i=0;i<115;i++){
takeuchi 0:3e0f52f529fc 179 mj[i]=' ';
takeuchi 0:3e0f52f529fc 180 }
takeuchi 0:3e0f52f529fc 181 mj[5]='A';mj[16]='B';mj[20]='C';mj[8]='D';mj[1]='E';
takeuchi 0:3e0f52f529fc 182 mj[19]='F';mj[10]='G';mj[15]='H';mj[3]='I';mj[29]='J';
takeuchi 0:3e0f52f529fc 183 mj[12]='K';mj[17]='L';mj[6]='M';mj[4]='N';mj[14]='O';
takeuchi 0:3e0f52f529fc 184 mj[21]='P';mj[26]='Q';mj[9]='R';mj[7]='S';mj[2]='T';
takeuchi 0:3e0f52f529fc 185 mj[11]='U';mj[23]='V';mj[13]='W';mj[24]='X';mj[28]='Y';
takeuchi 0:3e0f52f529fc 186 mj[18]='Z';
takeuchi 0:3e0f52f529fc 187 mj[61]='1';mj[59]='2';mj[55]='3';mj[47]='4';mj[31]='5';
takeuchi 0:3e0f52f529fc 188 mj[32]='6';mj[34]='7';mj[38]='8';mj[46]='9';mj[62]='0';
takeuchi 0:3e0f52f529fc 189 mj[105]='.';mj[114]=',';mj[75]='?';mj[48]='=';mj[96]='-';
takeuchi 0:3e0f52f529fc 190 mj[70]=':';mj[93]='\'';mj[44]='(';mj[108]=')';mj[40]='/';
takeuchi 0:3e0f52f529fc 191 mj[85]='@';
takeuchi 0:3e0f52f529fc 192 //mj[41]='+';
takeuchi 0:3e0f52f529fc 193
takeuchi 0:3e0f52f529fc 194 // Kanamoji
takeuchi 0:3e0f52f529fc 195 for(i=0;i<121;i++){
takeuchi 0:3e0f52f529fc 196 mjj[i]=' ';
takeuchi 0:3e0f52f529fc 197 }
takeuchi 0:3e0f52f529fc 198 mjj[58]=0xb1;mjj[5]=0xb2;mjj[11]=0xb3;mjj[60]=0xb4;mjj[33]=0xb5;//a
takeuchi 0:3e0f52f529fc 199 mjj[17]=0xb6;mjj[36]=0xb7;mjj[23]=0xb8;mjj[28]=0xb9;mjj[30]=0xba;//ka
takeuchi 0:3e0f52f529fc 200 mjj[52]=0xbb;mjj[42]=0xbc;mjj[54]=0xbd;mjj[45]=0xbe;mjj[22]=0xbf;//sa
takeuchi 0:3e0f52f529fc 201 mjj[4]=0xc0;mjj[19]=0xc1;mjj[21]=0xc2;mjj[57]=0xc3;mjj[35]=0xc4;//ta
takeuchi 0:3e0f52f529fc 202 mjj[9]=0xc5;mjj[20]=0xc6;mjj[15]=0xc7;mjj[26]=0xc8;mjj[27]=0xc9;//na
takeuchi 0:3e0f52f529fc 203 mjj[16]=0xca;mjj[50]=0xcb;mjj[18]=0xcc;mjj[1]=0xcd;mjj[8]=0xce;//ha
takeuchi 0:3e0f52f529fc 204 mjj[24]=0xcf;mjj[51]=0xd0;mjj[2]=0xd1;mjj[48]=0xd2;mjj[40]=0xd3;//ma
takeuchi 0:3e0f52f529fc 205 mjj[13]=0xd4;mjj[56]=0xd5;mjj[6]=0xd6;//ya
takeuchi 0:3e0f52f529fc 206 mjj[7]=0xd7;mjj[10]=0xd8;mjj[44]=0xd9;mjj[14]=0xda;mjj[25]=0xdb;//ra
takeuchi 0:3e0f52f529fc 207 mjj[12]=0xdc;mjj[49]=0xb2;mjj[37]=0xb4;mjj[29]=0xa6;mjj[41]=0xdd;//wa
takeuchi 0:3e0f52f529fc 208 mjj[53]=0xb0;mjj[43]=0xdf;mjj[105]=',';
takeuchi 0:3e0f52f529fc 209 mjj[3]=0xde;mjj[73]=0xa3;
takeuchi 0:3e0f52f529fc 210 mjj[108]='(';mjj[81]=')';
takeuchi 0:3e0f52f529fc 211 mjj[61]='1';mjj[59]='2';mjj[55]='3';mjj[47]='4';mjj[31]='5';
takeuchi 0:3e0f52f529fc 212 mjj[32]='6';mjj[34]='7';mjj[38]='8';mjj[46]='9';mjj[62]='0';
takeuchi 0:3e0f52f529fc 213
takeuchi 0:3e0f52f529fc 214 lcd.cls();
takeuchi 0:3e0f52f529fc 215 lcd.printf("*CWd ");
takeuchi 0:3e0f52f529fc 216
takeuchi 0:3e0f52f529fc 217 for(i=0;i<8;i++){
takeuchi 0:3e0f52f529fc 218 code[i]=0;
takeuchi 0:3e0f52f529fc 219 }
takeuchi 0:3e0f52f529fc 220
takeuchi 0:3e0f52f529fc 221 i=0;
takeuchi 0:3e0f52f529fc 222 tan_sum=0;
takeuchi 0:3e0f52f529fc 223 set_speed();
takeuchi 0:3e0f52f529fc 224 c1=' ',c2=' ';
takeuchi 0:3e0f52f529fc 225
takeuchi 0:3e0f52f529fc 226 set_gengo();
takeuchi 0:3e0f52f529fc 227
takeuchi 0:3e0f52f529fc 228 while( i<5 ){// System initialize
takeuchi 0:3e0f52f529fc 229 lcd.locate(8,0);
takeuchi 0:3e0f52f529fc 230 lcd.printf("%2d",5-i);
takeuchi 0:3e0f52f529fc 231 scount=0;
takeuchi 0:3e0f52f529fc 232 while(CW==XLOW){
takeuchi 0:3e0f52f529fc 233 }
takeuchi 0:3e0f52f529fc 234 mled1=ON;
takeuchi 0:3e0f52f529fc 235 while(CW==XHI){
takeuchi 0:3e0f52f529fc 236 scount++;
takeuchi 0:3e0f52f529fc 237 wait_ms(1);
takeuchi 0:3e0f52f529fc 238 }
takeuchi 0:3e0f52f529fc 239 mled1=OFF;
takeuchi 0:3e0f52f529fc 240 if(min_ms < scount && scount < max_ms){
takeuchi 0:3e0f52f529fc 241 tan_sum=tan_sum+scount;
takeuchi 0:3e0f52f529fc 242 i++;
takeuchi 0:3e0f52f529fc 243 }
takeuchi 0:3e0f52f529fc 244
takeuchi 0:3e0f52f529fc 245 }//while i
takeuchi 0:3e0f52f529fc 246
takeuchi 0:3e0f52f529fc 247 tanten=tan_sum/5;
takeuchi 0:3e0f52f529fc 248
takeuchi 0:3e0f52f529fc 249 j=0;
takeuchi 0:3e0f52f529fc 250 k=0;
takeuchi 0:3e0f52f529fc 251 tan_sum=0;
takeuchi 0:3e0f52f529fc 252 gyou=1,retu=0;
takeuchi 0:3e0f52f529fc 253 gengo=OUBUN;
takeuchi 0:3e0f52f529fc 254 wabun_temp=OUBUN;
takeuchi 0:3e0f52f529fc 255 while(1){
takeuchi 0:3e0f52f529fc 256 set_speed();// speed Hi/LO
takeuchi 0:3e0f52f529fc 257 set_gengo();
takeuchi 0:3e0f52f529fc 258 while(CW==XLOW){// signal Low wait
takeuchi 0:3e0f52f529fc 259 }
takeuchi 0:3e0f52f529fc 260
takeuchi 0:3e0f52f529fc 261 scount=0;
takeuchi 0:3e0f52f529fc 262 mled1=ON;
takeuchi 0:3e0f52f529fc 263 while(CW==XHI){// ._ count
takeuchi 0:3e0f52f529fc 264 wait_ms(1);
takeuchi 0:3e0f52f529fc 265 scount++;
takeuchi 0:3e0f52f529fc 266 }
takeuchi 0:3e0f52f529fc 267 mled1=OFF;
takeuchi 0:3e0f52f529fc 268
takeuchi 0:3e0f52f529fc 269 if(min_ms < scount && scount < max_ms){
takeuchi 0:3e0f52f529fc 270 //lcd.printf(".");
takeuchi 0:3e0f52f529fc 271 code[k]=1;
takeuchi 0:3e0f52f529fc 272 k++;
takeuchi 0:3e0f52f529fc 273 tan_sum=tan_sum+scount;
takeuchi 0:3e0f52f529fc 274 j++;
takeuchi 0:3e0f52f529fc 275 }
takeuchi 0:3e0f52f529fc 276
takeuchi 0:3e0f52f529fc 277 else if ( scount > tanten*2.0){
takeuchi 0:3e0f52f529fc 278 //lcd.printf("_");
takeuchi 0:3e0f52f529fc 279 code[k]=2;
takeuchi 0:3e0f52f529fc 280 k++;
takeuchi 0:3e0f52f529fc 281 tan_sum=tan_sum+scount/3;
takeuchi 0:3e0f52f529fc 282 j++;
takeuchi 0:3e0f52f529fc 283 }
takeuchi 0:3e0f52f529fc 284
takeuchi 0:3e0f52f529fc 285 lcd.locate(8,0);// moji kousei status
takeuchi 0:3e0f52f529fc 286 lcd.printf("%2d",k);
takeuchi 0:3e0f52f529fc 287
takeuchi 0:3e0f52f529fc 288 scount=0;
takeuchi 0:3e0f52f529fc 289 while(CW==XLOW){
takeuchi 0:3e0f52f529fc 290 wait_ms(1);
takeuchi 0:3e0f52f529fc 291 scount++;
takeuchi 0:3e0f52f529fc 292 if(scount > tanten*10){
takeuchi 0:3e0f52f529fc 293 break;
takeuchi 0:3e0f52f529fc 294 }
takeuchi 0:3e0f52f529fc 295 }
takeuchi 0:3e0f52f529fc 296
takeuchi 0:3e0f52f529fc 297 if(k>8){// moji kousei over flow
takeuchi 0:3e0f52f529fc 298 k=0;
takeuchi 0:3e0f52f529fc 299 lcd_scprintf('*');
takeuchi 0:3e0f52f529fc 300 for(i=0;i<=7;i++){
takeuchi 0:3e0f52f529fc 301 code[i]=0;
takeuchi 0:3e0f52f529fc 302 }
takeuchi 0:3e0f52f529fc 303 }
takeuchi 0:3e0f52f529fc 304
takeuchi 0:3e0f52f529fc 305 if(gengo==OUBUN && scount > tanten*2.0){// Oubun shori
takeuchi 0:3e0f52f529fc 306 lcd_alpha();
takeuchi 0:3e0f52f529fc 307 cw_sum=0;
takeuchi 0:3e0f52f529fc 308 for(i=0;i<=7;i++){
takeuchi 0:3e0f52f529fc 309 cw_sum=cw_sum+code[i]*int(pow(2.0,i));
takeuchi 0:3e0f52f529fc 310 }
takeuchi 0:3e0f52f529fc 311
takeuchi 0:3e0f52f529fc 312 if(GENGO_MODE==AUTO && (cw_sum==HORE || cw_sum==58 ||cw_sum==28 || cw_sum==33 || cw_sum==36
takeuchi 0:3e0f52f529fc 313 || cw_sum==30 ||cw_sum==25) ){// hore a e o ki ko ro
takeuchi 0:3e0f52f529fc 314 lcd_scprintf('[');lcd_scprintf(0xce);lcd_scprintf( 0xda);lcd_scprintf(']');//ho re
takeuchi 0:3e0f52f529fc 315 if(c1=='C' && c2=='Q'){// CQ hore oubun keep
takeuchi 0:3e0f52f529fc 316 //
takeuchi 0:3e0f52f529fc 317 }
takeuchi 0:3e0f52f529fc 318 else{
takeuchi 0:3e0f52f529fc 319 gengo=WABUN;
takeuchi 0:3e0f52f529fc 320 wabun_temp=WABUN;
takeuchi 0:3e0f52f529fc 321 cw_sum=0;
takeuchi 0:3e0f52f529fc 322 }
takeuchi 0:3e0f52f529fc 323 }// if gengo auto
takeuchi 0:3e0f52f529fc 324 else if(cw_sum==BT){
takeuchi 0:3e0f52f529fc 325 lcd_scprintf('[');lcd_scprintf('B');lcd_scprintf('T');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 326 }
takeuchi 0:3e0f52f529fc 327 else if(cw_sum==KN){
takeuchi 0:3e0f52f529fc 328 lcd_scprintf('[');lcd_scprintf('K');lcd_scprintf('N');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 329 }
takeuchi 0:3e0f52f529fc 330 else if(cw_sum==AR){
takeuchi 0:3e0f52f529fc 331 lcd_scprintf('[');lcd_scprintf('A');lcd_scprintf('R');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 332 }
takeuchi 0:3e0f52f529fc 333 else if(cw_sum==HH){
takeuchi 0:3e0f52f529fc 334 lcd_scprintf('[');lcd_scprintf('H');lcd_scprintf('H');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 335 }
takeuchi 0:3e0f52f529fc 336 else if(cw_sum==AS){
takeuchi 0:3e0f52f529fc 337 lcd_scprintf('[');lcd_scprintf('A');lcd_scprintf('S');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 338 }
takeuchi 0:3e0f52f529fc 339 else if(cw_sum==CT){
takeuchi 0:3e0f52f529fc 340 lcd_scprintf('[');lcd_scprintf('C');lcd_scprintf('T');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 341 }
takeuchi 0:3e0f52f529fc 342 else if(cw_sum==VA){
takeuchi 0:3e0f52f529fc 343 lcd_scprintf('[');lcd_scprintf('V');lcd_scprintf('A');lcd_scprintf(']');
takeuchi 0:3e0f52f529fc 344 }
takeuchi 0:3e0f52f529fc 345 else if(cw_sum > 115){
takeuchi 0:3e0f52f529fc 346 lcd_scprintf('*');
takeuchi 0:3e0f52f529fc 347 cw_sum=0;
takeuchi 0:3e0f52f529fc 348 }
takeuchi 0:3e0f52f529fc 349 else {
takeuchi 0:3e0f52f529fc 350 lcd_scprintf(mj[cw_sum]);
takeuchi 0:3e0f52f529fc 351 c1=c2;// CQ hore taiou
takeuchi 0:3e0f52f529fc 352 c2=mj[cw_sum];
takeuchi 0:3e0f52f529fc 353 }
takeuchi 0:3e0f52f529fc 354 k=0;
takeuchi 0:3e0f52f529fc 355 for(i=0;i<=7;i++){
takeuchi 0:3e0f52f529fc 356 code[i]=0;
takeuchi 0:3e0f52f529fc 357 }
takeuchi 0:3e0f52f529fc 358 }//if oubun
takeuchi 0:3e0f52f529fc 359
takeuchi 0:3e0f52f529fc 360 if(gengo==WABUN && scount > tanten*2.0){// Wabun shori
takeuchi 0:3e0f52f529fc 361 lcd_kana();
takeuchi 0:3e0f52f529fc 362 cw_sum=0;
takeuchi 0:3e0f52f529fc 363 for(i=0;i<=7;i++){
takeuchi 0:3e0f52f529fc 364 cw_sum=cw_sum+code[i]*int(pow(2.0,i));
takeuchi 0:3e0f52f529fc 365 }
takeuchi 0:3e0f52f529fc 366
takeuchi 0:3e0f52f529fc 367 if(GENGO_MODE==AUTO && cw_sum==RATA){// ra ta
takeuchi 0:3e0f52f529fc 368 lcd_scprintf('[');lcd_scprintf(0xd7);lcd_scprintf(0xc0);lcd_scprintf(']');//ra ta
takeuchi 0:3e0f52f529fc 369 gengo=OUBUN;
takeuchi 0:3e0f52f529fc 370 wabun_temp=OUBUN;
takeuchi 0:3e0f52f529fc 371 }
takeuchi 0:3e0f52f529fc 372 if(cw_sum==81){// )
takeuchi 0:3e0f52f529fc 373 wabun_temp=WABUN;
takeuchi 0:3e0f52f529fc 374 lcd_kana();
takeuchi 0:3e0f52f529fc 375 }
takeuchi 0:3e0f52f529fc 376 else if(cw_sum > 121){
takeuchi 0:3e0f52f529fc 377 cw_sum=0;
takeuchi 0:3e0f52f529fc 378 lcd_scprintf(' ');
takeuchi 0:3e0f52f529fc 379 }
takeuchi 0:3e0f52f529fc 380
takeuchi 0:3e0f52f529fc 381 if(wabun_temp==WABUN){
takeuchi 0:3e0f52f529fc 382 lcd_scprintf(mjj[cw_sum]);
takeuchi 0:3e0f52f529fc 383 c1=c2;//CQ hore taiou
takeuchi 0:3e0f52f529fc 384 c2=mjj[cw_sum];
takeuchi 0:3e0f52f529fc 385 }
takeuchi 0:3e0f52f529fc 386 else if(wabun_temp==OUBUN){
takeuchi 0:3e0f52f529fc 387 lcd_scprintf(mj[cw_sum]);
takeuchi 0:3e0f52f529fc 388 c1=c2;//CQ hore taiou
takeuchi 0:3e0f52f529fc 389 c2=mj[cw_sum];
takeuchi 0:3e0f52f529fc 390 }
takeuchi 0:3e0f52f529fc 391
takeuchi 0:3e0f52f529fc 392 if(cw_sum==108){// (
takeuchi 0:3e0f52f529fc 393 wabun_temp=OUBUN;
takeuchi 0:3e0f52f529fc 394 lcd_alpha();
takeuchi 0:3e0f52f529fc 395 }
takeuchi 0:3e0f52f529fc 396
takeuchi 0:3e0f52f529fc 397 k=0;
takeuchi 0:3e0f52f529fc 398 for(i=0;i<=7;i++){
takeuchi 0:3e0f52f529fc 399 code[i]=0;
takeuchi 0:3e0f52f529fc 400 }
takeuchi 0:3e0f52f529fc 401 }//if wabun
takeuchi 0:3e0f52f529fc 402
takeuchi 0:3e0f52f529fc 403 if(scount > tanten*7){// tango kan space
takeuchi 0:3e0f52f529fc 404 lcd_scprintf(' ');
takeuchi 0:3e0f52f529fc 405 }
takeuchi 0:3e0f52f529fc 406
takeuchi 0:3e0f52f529fc 407 if(j==10){// ._ nagasa heikin keisan
takeuchi 0:3e0f52f529fc 408 tanten=tan_sum/10;
takeuchi 0:3e0f52f529fc 409 cpm=60000/(tanten*57)*5;
takeuchi 0:3e0f52f529fc 410 tan_sum=0;
takeuchi 0:3e0f52f529fc 411 j=0;
takeuchi 0:3e0f52f529fc 412 if(cpm > 100){// Professional
takeuchi 0:3e0f52f529fc 413 cw_class='P';
takeuchi 0:3e0f52f529fc 414 }
takeuchi 0:3e0f52f529fc 415 else if(cpm > 90){ // Special
takeuchi 0:3e0f52f529fc 416 cw_class='S';
takeuchi 0:3e0f52f529fc 417 }
takeuchi 0:3e0f52f529fc 418 else if(cpm > 65){// 1ama
takeuchi 0:3e0f52f529fc 419 cw_class='1';
takeuchi 0:3e0f52f529fc 420 }
takeuchi 0:3e0f52f529fc 421 else if(cpm > 40){// 2ama
takeuchi 0:3e0f52f529fc 422 cw_class='2';
takeuchi 0:3e0f52f529fc 423 }
takeuchi 0:3e0f52f529fc 424 else if(cpm > 30){//3 ama
takeuchi 0:3e0f52f529fc 425 cw_class='3';
takeuchi 0:3e0f52f529fc 426 }
takeuchi 0:3e0f52f529fc 427 lcd.locate(11,0);
takeuchi 0:3e0f52f529fc 428 lcd.printf("%3dc(%c)",cpm,cw_class);// cw class hantei
takeuchi 0:3e0f52f529fc 429 //lcd.printf("%3dc,%3dm",cpm,tanten);
takeuchi 0:3e0f52f529fc 430 }
takeuchi 0:3e0f52f529fc 431 }//while 1
takeuchi 0:3e0f52f529fc 432 }//main