kinuko hayashi
/
calsat32_9
Diff: main.cpp
- Revision:
- 1:5e06e6104734
- Parent:
- 0:890389640538
diff -r 890389640538 -r 5e06e6104734 main.cpp --- a/main.cpp Fri Feb 12 11:01:20 2021 +0000 +++ b/main.cpp Mon Feb 15 13:09:07 2021 +0000 @@ -9,7 +9,8 @@ void calsat_callback(char c); -void calsat_callback(char c){ +void calsat_callback(char c) +{ pc.printf("%02hhx ",c); } @@ -27,7 +28,7 @@ int size;//累計の長さこれが32となったら1つのレジスタの設定が完了として次のレジスタの設定へ移る int register_num;//レジスタ番号 int buf; - char command[128]; + char command[512]; const char* filename; FILE *fp; @@ -44,6 +45,20 @@ } //main関数内でコマンドが0x00の時にmainでbinary()を呼ぶと計算をしてuint_32型の値を返す + + void packet(char data, int i) + { + printf("%d\r\n",i); + command[i] = data; + + if(data == 0xfd && ( command[4] == 0x00 ||command[11] == 0x00 )) { + + file_read(command); + + } + + } + void Shift_bit(uint32_t& Register, int Register_data, int Size) { Register |= (Register_data << Size); @@ -63,6 +78,7 @@ int l = 1;//行数 uint32_t _register = 0;//最終的に欲しいレジスタの値.32ビット while ( fscanf(fp,"%[^,],%d,%d%d",name, ®ister_data,&length,&buf) != EOF ) { + if(l == 1 || l == 14 || l == 21 || l == 26 || l == 36) l++; @@ -95,6 +111,7 @@ } //printf("%s %d %d\n",name,register_data,length); + l++; } } @@ -132,13 +149,7 @@ return doppler_data / 1000000; } - void packet(char data, int i) - { - command[i] = data; - if(data == 0xfd && command[4] == 0x00) { - file_read(command); - } - } + void show(uint32_t bin) { @@ -157,17 +168,23 @@ int main() { Serial device( p9, p10, 9600); - + int i = 0; while(1) { if(device.readable()) { + calsat32 tmp; - int i = 0; char c = device.getc(); calsat_callback(c); tmp.packet(c,i); printf("\r\n"); + i++; - - } + /* if(i == 256) + break;*/ + + + }//printf("one packet done"); + } + return 0; }