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.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 3:e6d72c02e045
- Parent:
- 2:0a0b5c62d10c
- Child:
- 4:a263257f3a2b
--- a/main.cpp Mon Mar 22 03:55:57 2021 +0000 +++ b/main.cpp Wed Mar 24 13:23:25 2021 +0000 @@ -39,42 +39,56 @@ human_freq = 0; } //main関数内でコマンドが0x00の時にmainでbinary()を呼ぶと計算をしてuint_32型の値を返す - void Reg0_gen(int key,double calsat_freq,double human_freq ,uint32_t _register){ - + uint32_t Reg0_gen(int key,double calsat_freq,double human_freq ) + { + uint32_t freq_bit; if(key == '1') { - //printf("%lf %lf\r\n",calsat_freq,human_freq); - Shift_bit(_register, binary(calsat_freq), 23); - } - else if(key =='2'){ //calsatから受けとる - Shift_bit(_register, binary(human_freq), 23);//1の時calsat,2の時人 - } - /*else if(key == '3' || key == '0') { - uint32_t tmp = 0; - tmp |= ( register_data_array[2] >> 27); //この行と次の行でレジスタのデータの部分を全て0にしている - tmp |= (tmp << 27); - if(key == 3){ - Shift_bit(tmp, binary(human_freq), 4);//人間が入力した周波数の値を用いたレジスタを作成する - register_data_array[2] = tmp;//配列の中に格納する - show_all(); - }*/ - else {} - - for(int i = 27; i > 0; i--) { - if(_register & (1 << (i - 1))) { + //printf("%lf %lf\r\n",calsat_freq,human_freq); + freq_bit = binary(calsat_freq); + + //Shift_bit(_register, freq_bit, 23); + + } else if(key =='2') { //calsatから受けとる + freq_bit = binary(human_freq); + // Shift_bit(_register, freq_bit, 23);//1の時calsat,2の時人 + } + /*else if(key == '3' || key == '0') { + uint32_t tmp = 0; + tmp |= ( register_data_array[2] >> 27); //この行と次の行でレジスタのデータの部分を全て0にしている + tmp |= (tmp << 27); + if(key == 3){ + Shift_bit(tmp, binary(human_freq), 4);//人間が入力した周波数の値を用いたレジスタを作成する + register_data_array[2] = tmp;//配列の中に格納する + show_all(); + }*/ + else {} + freq_bit = freq_bit<<4; + + /* for(int i = 23; i > 0; i--) { + if(freq_bit & (1 << (i - 1))) { + pc.printf("1"); + } else { + pc.printf("0"); + } + } + printf("\r\n");*/ + for(int i = 27; i > 0; i--) { + if(freq_bit & (1 << (i - 1))) { pc.printf("1"); } else { pc.printf("0"); } } - //show(_register); - printf("\r\n"); - + + printf("\r\n"); + return freq_bit; + } void Shift_bit(uint32_t& Register, int Register_data, int Size) { Register |= (Register_data << Size); } - void file_read(char key ,double calsat_freq) + void file_read(char key,double calsat_freq) { /* ファイルのオープン */ char name[100] = {};//出力はしない @@ -93,13 +107,22 @@ } else { printf(" %d %d %d \r\n",register_data, length,size); if(l==23) { - /*if(key == '1') + /*if(key == '1') Shift_bit(_register, binary(calsat_freq), 4); if(key == '2')*/ - human_freq = register_data; - // Shift_bit(_register, binary(register_data), 4); - Reg0_gen(key, calsat_freq, human_freq, _register); - size = 27; + human_freq = register_data; + // Shift_bit(_register, binary(register_data), 4); + _register = Reg0_gen(key, calsat_freq, human_freq ); + + for(int i = 27; i > 0; i--) {//デバッグ用 + if(_register & (1 << (i - 1))) { + pc.printf("1"); + } else { + pc.printf("0"); + } + } + printf("\r\n"); + size = 27; //テキストファイルから受け取った値を格納するとき } else { Shift_bit(_register, register_data, size); @@ -149,7 +172,7 @@ flag += 2; } calsat_freq = 10 * data[0] + data[1] + kHz * data[2] + 100 * data[3] + 100*kHz * data[4] + 10*kHz * data[5] + 10*MHz * data[6] + MHz * data[7] + data[8] + 100*MHz * data[9];//Hz - printf("\n%lf\r\n",calsat_freq / 1000000); //Mhz + printf("\n%lf\r\n",calsat_freq / 1000000); //Mhz return calsat_freq / 1000000; } void show(uint32_t bin) @@ -191,8 +214,8 @@ _command[a] = c; a++; if(_command[a-1] == 0xfd) { - calsat_freq = doppler(_command); - Reg0_gen(1, calsat_freq, human_freq,_register); //reg0をcalsatの値で更新 + calsat_freq = doppler(_command); + Reg0_gen(1, calsat_freq, human_freq); //reg0をcalsatの値で更新 /* for(int j = 0; j < a; j++) printf("%02hhx",_command[j]); @@ -218,16 +241,16 @@ while(1) { calsat32 tmp; while(device.readable()) { + char c = device.getc(); double calsat_freq = tmp.packet(c); if(pc.readable()) { char key = pc.getc(); - if(key == '1' ||key == '2'){ - tmp.check(key,calsat_freq); - //file読み込み、calsator人の更新 - } - else if(key == '3')//reg0を人にする - tmp.check(key,calsat_freq); + if(key == '1' ||key == '2') { + tmp.check(key,calsat_freq); + //file読み込み、calsator人の更新 + } else if(key == '3') //reg0を人にする + tmp.check(key,calsat_freq); } } }