natsu tsumagari
/
receive_twe
回転数計のデータをトワイライトから受け取って回転数を計算して表示します。
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 Serial pc(USBTX,USBRX); 00004 Serial twe(p13,p14); 00005 char data[74]; 00006 int data_count; 00007 int data_num; 00008 int z_int; 00009 double z_double; 00010 int offset = (int)'0'; 00011 float cadence; 00012 bool datas_title_flag=false; 00013 00014 int main() { 00015 twe.baud(115200); 00016 pc.baud(115200); 00017 data_num=0; 00018 data_count=0; 00019 while(1) { 00020 if(twe.readable()){ 00021 data[data_count]=twe.getc(); 00022 00023 if(data[data_count]=='\r'){ 00024 for(int i=0;i<73;i++) data[i]= NULL; 00025 data_num=0; 00026 pc.putc('!'); 00027 data_count=0; 00028 }else{ 00029 if(data[data_count]==';'){ 00030 data_num++; 00031 datas_title_flag=true; 00032 } 00033 if(data_num==1){ 00034 if(datas_title_flag){ 00035 pc.printf("\n\r time:"); 00036 datas_title_flag=false; 00037 }else{ 00038 pc.putc(data[data_count]); 00039 } 00040 }else if(data_num==6){ 00041 if(datas_title_flag){ 00042 pc.printf("\n\r voltage:"); 00043 datas_title_flag=false; 00044 }else{ 00045 pc.putc(data[data_count]); 00046 } 00047 }else if(data_num==14){ 00048 if(datas_title_flag){ 00049 pc.printf("\n\r Z:"); 00050 datas_title_flag=false; 00051 }else{ 00052 pc.putc(data[data_count]); 00053 } 00054 }else if(data_num==15){ 00055 z_int = (int)data[data_count-1] + (int)data[data_count-2]*10 + (int)data[data_count-3]*100 - offset*111; 00056 if(data[data_count-4]!='0') z_int *= -1; 00057 z_double = (double)z_int/6; //角度補正前ふつうに 00058 pc.printf("\n%f",z_double); 00059 //pc.putc('\n'); 00060 // pc.putc(data[data_count]); 00061 } 00062 data_count++; 00063 }//else 00064 00065 } //readable 00066 }//while 00067 } //main 00068 //一行72文字
Generated on Wed Jul 13 2022 14:49:05 by 1.7.2