エレキジャックweb mbed入門 mbed CWデコーダ課題11です。”ホレ””ラタ”による自動切り替えに加えて(QTH)のような一時切り替えに対応します。デコーダ基板が必要です。

Dependencies:   mbed

Committer:
takeuchi
Date:
Mon Jul 16 06:01:40 2012 +0000
Revision:
0:18044d748c0c
???????web mbed?? mbed CW??????10?????????????????????????????????????????????????

Who changed what in which revision?

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