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.
Diff: main.cpp
- Revision:
- 2:e97ec9bc9b77
- Parent:
- 1:58b02b3d2cb0
- Child:
- 3:be6612928d04
diff -r 58b02b3d2cb0 -r e97ec9bc9b77 main.cpp
--- a/main.cpp Tue Feb 09 05:09:27 2021 +0000
+++ b/main.cpp Tue Feb 09 06:20:46 2021 +0000
@@ -17,7 +17,7 @@
int size;//累計の長さこれが32となったら1つのレジスタの設定が完了として次のレジスタの設定へ移る
int register_num;//レジスタ番号
int buf;
-
+
const char* filename;
FILE *fp;
@@ -48,40 +48,50 @@
}
/* ファイルの終端まで文字を読み取り表示する */
+ int num[5] = {1,3,0,5,4};
int l = 1;//行数
uint32_t _register = 0;//最終的に欲しいレジスタの値.32ビット
while ( fscanf(fp,"%[^,],%d,%d%d",name, ®ister_data,&length,&buf) != EOF ) {
- if(l == 1 || l == 9 || l == 19 || l == 24 || l == 31){
- printf("%d\n",l);
+ if(l == 1 || l == 14 || l == 21 || l == 26 || l == 36) {
+ // printf("%d\n",l);
l++;
-
- }else{
- printf("%d %d \r\n",register_data, length );
-
- //calsatから受け取った値を格納するとき
- if(register_num == 3 && size == 4 ) {
- Shift_bit(_register, binary(command), 4);
- size = 27;
- }
-
- //テキストファイルから受け取った値を格納するとき
- Shift_bit(_register, register_data, size);
- size += length;
- if(size == 32) {
- //これで一つ完成.この値をどういう風にやるかは未定show()みたいなのを作るか?
- printf("regnum =%d ",register_num);
- show(_register);
- register_num++;
- _register = 0;
- size = 0;
- if(register_num == 5)
- size = 6;
-
- }
- //printf("%s %d %d\n",name,register_data,length);
- //size += length; どこにおけばいいかわからん
- l++;
- }//else 閉じる
+
+ } else {
+ printf("%d %d \r\n",register_data, length );
+
+ //calsatから受け取った値を格納するとき
+ if(register_num == 3 && size == 4 ) {
+ Shift_bit(_register, binary(command), 4);
+ size = 27;
+ }
+
+ //テキストファイルから受け取った値を格納するとき
+ Shift_bit(_register, register_data, size);
+ size += length;
+ if(register_num == 1 && size == 26) {
+ printf("reg_%d = ",num[register_num - 1]);
+ show(_register);
+ register_num++;
+ _register = 0;
+ size = 0;
+ }
+ if(size == 32) {
+ //これで一つ完成.この値をどういう風にやるかは未定show()みたいなのを作るか?
+ printf("reg_%d = ",num[register_num - 1]);
+ show(_register);
+ register_num++;
+ _register = 0;
+ size = 0;
+ /*
+ if(register_num == 5)
+ size = 6;
+ */
+
+ }
+ //printf("%s %d %d\n",name,register_data,length);
+ //size += length; どこにおけばいいかわからん
+ l++;
+ }//else 閉じる
}
/* ファイルのクローズ */
fclose(fp);
@@ -95,40 +105,8 @@
double test = (n - (int)n);
Fractional_N = test*32768;
- //小数部分
- for(int i=0; Fractional_N>0; i++) {
- decbin[i] = Fractional_N % 2;
- Fractional_N = Fractional_N / 2;
- }
- int l = 15;
- //2進数の出力
- while( l>0 ) {
- printf(" %d", decbin[--l]);
- }
- printf("\r\n");
-
- uint32_t dec = 0;
- for(int i = 0; i < l; i++ ) {
- dec |= (decbin[i] << i);
- }
- //整数部分
- for(int i = 0; Integer_N > 0; i++) {
- intbin[i] = Integer_N % 2;
- Integer_N = Integer_N / 2;
- }
- int k = 8;
-
- while( k>0 ) {
- printf(" %d", intbin[--k]);
- }
- printf("\r\n");
-
- uint32_t inte = 0;
- for(int i = 0; i < k; i++ ) {
- inte |= (intbin[i] << i);
- }
-
- return dec |= (inte << 15);//レジスタ入力に適した形にした23桁の2進数を返す
+ uint32_t data = Fractional_N;
+ return data |= (Integer_N << 15);//レジスタ入力に適した形にした23桁の2進数を返す
}
//データを取得し返す関数
double doppler(char *a)
@@ -166,8 +144,9 @@
{
while(1) {
char c = device.getc();
+
if(c == 0xfe) { //FEコマンドがきたらdataが始まる
-
+
char command[128] = {};
while(1) {
command[0] = c;
@@ -184,9 +163,10 @@
//ここまでで一旦プリアンブルからポストアンブルまでをcommandに格納する
if(command[4] == 0x00 )
a.file_read(command);
- break;
+ break;
}
}
- }
+
+ }
return 0;
}