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
Revision 2:0a0b5c62d10c, committed 2021-03-22
- Comitter:
- KINU
- Date:
- Mon Mar 22 03:55:57 2021 +0000
- Parent:
- 1:515864d13410
- Commit message:
- ddddd
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 515864d13410 -r 0a0b5c62d10c main.cpp
--- a/main.cpp Wed Mar 17 16:35:21 2021 +0000
+++ b/main.cpp Mon Mar 22 03:55:57 2021 +0000
@@ -23,7 +23,7 @@
char _command[128];
double human_freq; //人から受け取る周波数の値
uint32_t _register;//最終的に欲しいレジスタの値.32ビット
- uint32_t register_data_array[16];//完成したレジスターを格納する配列sho
+ uint32_t register_data_array[16];//完成したレジスターを格納する配列
const char* filename;
FILE *fp;
calsat32()
@@ -39,26 +39,36 @@
human_freq = 0;
}
//main関数内でコマンドが0x00の時にmainでbinary()を呼ぶと計算をしてuint_32型の値を返す
- void Reg0_gen(int key,double calsat_freq,double human_freq ){ //keyはコマンド
+ void Reg0_gen(int key,double calsat_freq,double human_freq ,uint32_t _register){
+
if(key == '1') {
- Shift_bit(_register, binary(calsat_freq), 4);
-
+ //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), 4);//1の時calsat,2の時人
-
+ 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))) {
+ pc.printf("1");
+ } else {
+ pc.printf("0");
+ }
+ }
+ //show(_register);
+ printf("\r\n");
+
}
void Shift_bit(uint32_t& Register, int Register_data, int Size)
{
@@ -87,13 +97,9 @@
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);
+ // Shift_bit(_register, binary(register_data), 4);
+ Reg0_gen(key, calsat_freq, human_freq, _register);
size = 27;
-
- /* doppler_data = doppler(_command);
- Reg0_gen(key,doppler_data);*/
//テキストファイルから受け取った値を格納するとき
} else {
Shift_bit(_register, register_data, size);
@@ -102,11 +108,11 @@
printf(" = reg_%d ",num[register_num - 1]);
show(_register);
register_num++;
- _register = 0;
+ //_register = 0;
size = 0;
}
if(size == 32) {
- //これで一つ完成.この値をどういう風にやるかは未定show()みたいなのを作るか?
+ //これで一つ完成.
printf(" = reg_%d ",num[register_num - 1]);
show(_register);
register_num++;
@@ -143,7 +149,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)
@@ -186,7 +192,7 @@
a++;
if(_command[a-1] == 0xfd) {
calsat_freq = doppler(_command);
- Reg0_gen(1, calsat_freq, human_freq); //reg0をcalsatの値で更新
+ Reg0_gen(1, calsat_freq, human_freq,_register); //reg0をcalsatの値で更新
/*
for(int j = 0; j < a; j++)
printf("%02hhx",_command[j]);
@@ -198,7 +204,7 @@
}
void check(char key,double calsat_freq)
{
- printf("%c",key);
+ printf("key = %c\r\n",key);
if(_command[4] == 0x00) {
printf("---------------------------Start-----------------------------\r\n");
file_read(key,calsat_freq);
@@ -208,6 +214,7 @@
int main()
{
Serial device( p9, p10, 9600);
+ printf("Start\r\n");
while(1) {
calsat32 tmp;
while(device.readable()) {
@@ -220,7 +227,6 @@
//file読み込み、calsator人の更新
}
else if(key == '3')//reg0を人にする
-
tmp.check(key,calsat_freq);
}
}