Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 // CW05 00002 // auto speed 00003 #include "mbed.h" 00004 #include "TextLCD0420.h" 00005 00006 #define ON 1 00007 #define OFF 0 00008 #define XON 0 00009 #define XOFF 1 00010 #define XHI 0 00011 #define XLOW 1 00012 #define HI 1 00013 #define LOW 0 00014 #define OUBUN 1 00015 #define WABUN 0 00016 00017 DigitalOut mled1(LED1); 00018 DigitalOut mled2(LED2); 00019 DigitalOut mled3(LED3); 00020 DigitalOut mled4(LED4); 00021 DigitalIn CW(p5); 00022 DigitalIn SP_SELECT(p6); 00023 DigitalIn GENGO_MODE(p7); 00024 DigitalIn GENGO_SELECT(p8); 00025 00026 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3 00027 00028 int retu,gyou; 00029 char g2[20],g3[20]; 00030 int init_flag=ON; 00031 int min_ms,max_ms; 00032 00033 void set_speed(){ 00034 if(SP_SELECT==HI){ 00035 min_ms=30; 00036 max_ms=90; 00037 lcd.locate(5,0); 00038 lcd.printf("H"); 00039 } 00040 else if(SP_SELECT==LOW){ 00041 min_ms=70; 00042 max_ms=210; 00043 lcd.locate(5,0); 00044 lcd.printf("L"); 00045 } 00046 } 00047 00048 int main() { 00049 00050 int i,j,k; 00051 int code[20]; 00052 int scount; 00053 char mj[115]; 00054 int cw_sum,tan_sum,tanten; 00055 00056 for(i=0;i<115;i++){ 00057 mj[i]=' '; 00058 } 00059 mj[5]='A';mj[16]='B';mj[20]='C';mj[8]='D';mj[1]='E'; 00060 mj[19]='F';mj[10]='G';mj[15]='H';mj[3]='I';mj[29]='J'; 00061 mj[12]='K';mj[17]='L';mj[6]='M';mj[4]='N';mj[14]='O'; 00062 mj[21]='P';mj[26]='Q';mj[9]='R';mj[7]='S';mj[2]='T'; 00063 mj[11]='U';mj[23]='V';mj[13]='W';mj[24]='X';mj[28]='Y'; 00064 mj[18]='Z'; 00065 mj[61]='1';mj[59]='2';mj[55]='3';mj[47]='4';mj[31]='5'; 00066 mj[32]='6';mj[34]='7';mj[38]='8';mj[46]='9';mj[62]='0'; 00067 mj[105]='.';mj[114]=',';mj[75]='?';mj[48]='=';mj[96]='-'; 00068 mj[70]=':';mj[93]='\'';mj[44]='(';mj[108]=')';mj[41]='+'; 00069 mj[81]='"'; 00070 00071 lcd.cls(); 00072 lcd.printf("*CW05 "); 00073 00074 for(i=0;i<6;i++){ 00075 code[i]=0; 00076 } 00077 00078 i=0; 00079 tan_sum=0; 00080 set_speed(); 00081 00082 while( i<5 ){ 00083 lcd.locate(7,0); 00084 lcd.printf("%2d",5-i); 00085 scount=0; 00086 while(CW==XLOW){ 00087 } 00088 mled1=ON; 00089 while(CW==XHI){ 00090 scount++; 00091 wait_ms(1); 00092 } 00093 mled1=OFF; 00094 if(min_ms < scount && scount < max_ms){ 00095 tan_sum=tan_sum+scount; 00096 i++; 00097 } 00098 00099 } 00100 tanten=tan_sum/5; 00101 lcd.locate(0,1); 00102 lcd.printf("%3d ",tanten); 00103 00104 j=0; 00105 tan_sum=0; 00106 k=0; 00107 00108 while(1){ 00109 while(CW==XLOW){ 00110 } 00111 00112 scount=0; 00113 mled1=ON; 00114 while(CW==XHI){ 00115 wait_ms(1); 00116 scount++; 00117 } 00118 mled1=OFF; 00119 00120 if(min_ms < scount && scount < max_ms){ 00121 //lcd.printf("."); 00122 code[k]=1; 00123 k++; 00124 tan_sum=tan_sum+scount; 00125 j++; 00126 } 00127 00128 else if ( scount > tanten*2.0){ 00129 //lcd.printf("_"); 00130 code[k]=2; 00131 k++; 00132 tan_sum=tan_sum+scount/3; 00133 j++; 00134 } 00135 00136 scount=0; 00137 while(CW==XLOW){ 00138 wait_ms(1); 00139 scount++; 00140 if(scount > tanten*10){ 00141 break; 00142 } 00143 } 00144 00145 if(k>=6){ 00146 k=0; 00147 lcd.printf("*"); 00148 for(i=0;i<6;i++){ 00149 code[i]=0; 00150 } 00151 } 00152 00153 if(scount > tanten*2.0){ 00154 cw_sum=0; 00155 for(i=0;i<6;i++){ 00156 cw_sum=cw_sum+code[i]*int(pow(2.0,i)); 00157 } 00158 lcd.printf("%c",mj[cw_sum]); 00159 k=0; 00160 for(i=0;i<6;i++){ 00161 code[i]=0; 00162 } 00163 }//if 00164 00165 if(scount > tanten*7){ 00166 lcd.printf(" "); 00167 } 00168 00169 if(j==10){ 00170 tanten=tan_sum/10; 00171 tan_sum=0; 00172 j=0; 00173 lcd.printf("%3d ",tanten); 00174 } 00175 }//while 1 00176 }//main
Generated on Thu Jul 21 2022 03:05:48 by
