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:
- 1:515864d13410
- Parent:
- 0:4f081a382f9b
- Child:
- 2:0a0b5c62d10c
--- a/main.cpp Wed Mar 17 06:00:41 2021 +0000 +++ b/main.cpp Wed Mar 17 16:35:21 2021 +0000 @@ -21,7 +21,7 @@ int register_num;//レジスタ番号 int buf; char _command[128]; - double human_doppler; //人から受け取る周波数の値 + double human_freq; //人から受け取る周波数の値 uint32_t _register;//最終的に欲しいレジスタの値.32ビット uint32_t register_data_array[16];//完成したレジスターを格納する配列sho const char* filename; @@ -36,35 +36,35 @@ register_num = 1;//レジスタ番号 filename = "/local/register.tsv"; _register = 0; - human_doppler = 0; + human_freq = 0; } //main関数内でコマンドが0x00の時にmainでbinary()を呼ぶと計算をしてuint_32型の値を返す - /*void Reg0_gen(int key,double doppler_data ){ //keyはコマンド - if(key == 1) { - Shift_bit(_register, binary(doppler_data), 4); - size = 27; + void Reg0_gen(int key,double calsat_freq,double human_freq ){ //keyはコマンド + if(key == '1') { + Shift_bit(_register, binary(calsat_freq), 4); + } - else if(key ==2){ //calsatから受けとる - Shift_bit(_register, binary(human_doppler), 4);//1の時calsat,2の時人 - size = 27; + else if(key =='2'){ //calsatから受けとる + Shift_bit(_register, binary(human_freq), 4);//1の時calsat,2の時人 + } - else if(key == 3 || key == 0) { + /*else if(key == '3' || key == '0') { uint32_t tmp = 0; tmp |= ( register_data_array[2] >> 27); //この行と次の行でレジスタのデータの部分を全て0にしている tmp |= (tmp << 27); - size = 27; + if(key == 3){ - Shift_bit(tmp, binary(human_doppler), 4);//人間が入力した周波数の値を用いたレジスタを作成する + Shift_bit(tmp, binary(human_freq), 4);//人間が入力した周波数の値を用いたレジスタを作成する register_data_array[2] = tmp;//配列の中に格納する show_all(); - } - }else {} - }*/ + }*/ + else {} + } void Shift_bit(uint32_t& Register, int Register_data, int Size) { Register |= (Register_data << Size); } - void file_read(char* command, char key) + void file_read(char key ,double calsat_freq) { /* ファイルのオープン */ char name[100] = {};//出力はしない @@ -83,16 +83,15 @@ } else { printf(" %d %d %d \r\n",register_data, length,size); if(l==23) { - if(key == '1'){ - Shift_bit(_register, binary(doppler(command)), 4); + /*if(key == '1') + Shift_bit(_register, binary(calsat_freq), 4); + if(key == '2')*/ + human_freq = register_data; + // Shift_bit(_register, binary(register_data), 4);printf("ggg"); + + Reg0_gen(key, calsat_freq, human_freq); size = 27; - } - else if(key == '2'){ - human_doppler = register_data; - size = 27; - Shift_bit(_register, binary(register_data), 4); - printf("ggg"); - } + /* doppler_data = doppler(_command); Reg0_gen(key,doppler_data);*/ //テキストファイルから受け取った値を格納するとき @@ -135,7 +134,7 @@ double doppler(char *a) { int data[10] = {0}; - double doppler_data = 0; + double calsat_freq = 0; int flag = 0; for(int i = 5; i < 10; i++) { char c = a[i]; @@ -143,9 +142,9 @@ data[flag+1] = c & 0xf; flag += 2; } - doppler_data = 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",doppler_data / 1000000); //Mhz - return doppler_data / 1000000; + 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 + return calsat_freq / 1000000; } void show(uint32_t bin) { @@ -179,12 +178,15 @@ printf("\r\n"); } } - void packet(char c) + double packet(char c) { static int a = 0; + double calsat_freq; _command[a] = c; a++; if(_command[a-1] == 0xfd) { + calsat_freq = doppler(_command); + Reg0_gen(1, calsat_freq, human_freq); //reg0をcalsatの値で更新 /* for(int j = 0; j < a; j++) printf("%02hhx",_command[j]); @@ -192,13 +194,14 @@ */ a = 0; } + return calsat_freq; } - void check(char key) + void check(char key,double calsat_freq) { printf("%c",key); if(_command[4] == 0x00) { printf("---------------------------Start-----------------------------\r\n"); - file_read(_command,key); + file_read(key,calsat_freq); } } }; @@ -209,10 +212,16 @@ calsat32 tmp; while(device.readable()) { char c = device.getc(); - tmp.packet(c); + double calsat_freq = tmp.packet(c); if(pc.readable()) { char key = pc.getc(); - tmp.check(key); + if(key == '1' ||key == '2'){ + tmp.check(key,calsat_freq); + //file読み込み、calsator人の更新 + } + else if(key == '3')//reg0を人にする + + tmp.check(key,calsat_freq); } } }