Takeuchi Kouichi
/
2ck0705_mbed CW11
エレキジャックweb mbed入門 mbed CWデコーダ課題11です。”ホレ””ラタ”による自動切り替えに加えて(QTH)のような一時切り替えに対応します。デコーダ基板が必要です。
main.cpp@0:18044d748c0c, 2012-07-16 (annotated)
- 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?
User | Revision | Line number | New 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 |