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);
}
}
}