kinuko hayashi / Mbed 2 deprecated calsat32_6

Dependencies:   mbed

Committer:
ryouheitakamoto
Date:
Thu Dec 17 12:55:12 2020 +0000
Revision:
0:0b5a11c7df57
Child:
1:226fc487b92e
complete!;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryouheitakamoto 0:0b5a11c7df57 1 #include "mbed.h"
ryouheitakamoto 0:0b5a11c7df57 2 /*ドップラーシフト対策 calsatが計算した周波数のデータを受け取る*/
ryouheitakamoto 0:0b5a11c7df57 3 Serial pc(SERIAL_TX, SERIAL_RX,921600);
ryouheitakamoto 0:0b5a11c7df57 4 Serial device(PA_9,PA_10,9600);
ryouheitakamoto 0:0b5a11c7df57 5 #define kHz 1000
ryouheitakamoto 0:0b5a11c7df57 6 #define MHz 1000000
ryouheitakamoto 0:0b5a11c7df57 7
ryouheitakamoto 0:0b5a11c7df57 8 void doppler(char *a) //データを取得し、出力する関数
ryouheitakamoto 0:0b5a11c7df57 9 {
ryouheitakamoto 0:0b5a11c7df57 10 int data[10] = {0};
ryouheitakamoto 0:0b5a11c7df57 11 int doppler_data = 0;
ryouheitakamoto 0:0b5a11c7df57 12 int flag = 0;
ryouheitakamoto 0:0b5a11c7df57 13 for(int i = 5; i < 10; i++) {
ryouheitakamoto 0:0b5a11c7df57 14 char c = a[i];
ryouheitakamoto 0:0b5a11c7df57 15 data[flag] = (c >> 4) & 0xf;
ryouheitakamoto 0:0b5a11c7df57 16 data[flag+1] = c & 0xf;
ryouheitakamoto 0:0b5a11c7df57 17 flag += 2;
ryouheitakamoto 0:0b5a11c7df57 18 }
ryouheitakamoto 0:0b5a11c7df57 19
ryouheitakamoto 0:0b5a11c7df57 20 for(int i = 0; i < 10 ; i++)
ryouheitakamoto 0:0b5a11c7df57 21 printf("%d ", data[i]);
ryouheitakamoto 0:0b5a11c7df57 22 printf("\r\n");
ryouheitakamoto 0:0b5a11c7df57 23
ryouheitakamoto 0:0b5a11c7df57 24 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];
ryouheitakamoto 0:0b5a11c7df57 25 printf("\n%d\n",doppler_data);
ryouheitakamoto 0:0b5a11c7df57 26
ryouheitakamoto 0:0b5a11c7df57 27
ryouheitakamoto 0:0b5a11c7df57 28
ryouheitakamoto 0:0b5a11c7df57 29 }
ryouheitakamoto 0:0b5a11c7df57 30
ryouheitakamoto 0:0b5a11c7df57 31 int main()
ryouheitakamoto 0:0b5a11c7df57 32 {
ryouheitakamoto 0:0b5a11c7df57 33
ryouheitakamoto 0:0b5a11c7df57 34 while(1) {
ryouheitakamoto 0:0b5a11c7df57 35 char command[128] = {'0'};
ryouheitakamoto 0:0b5a11c7df57 36 char c = device.getc();
ryouheitakamoto 0:0b5a11c7df57 37 int i = 1;
ryouheitakamoto 0:0b5a11c7df57 38 if(c == 0xfe) { //FEコマンドがきたらdataが始まる
ryouheitakamoto 0:0b5a11c7df57 39 command[0] = c;
ryouheitakamoto 0:0b5a11c7df57 40
ryouheitakamoto 0:0b5a11c7df57 41 while(c != 0xfd) {
ryouheitakamoto 0:0b5a11c7df57 42 c = device.getc();
ryouheitakamoto 0:0b5a11c7df57 43 command[i] = c;
ryouheitakamoto 0:0b5a11c7df57 44 i++;
ryouheitakamoto 0:0b5a11c7df57 45 }
ryouheitakamoto 0:0b5a11c7df57 46 //ここまでで一旦プリアンブルからポストアンブルまでをcommandに格納する
ryouheitakamoto 0:0b5a11c7df57 47 //表示確認
ryouheitakamoto 0:0b5a11c7df57 48
ryouheitakamoto 0:0b5a11c7df57 49 for(int j = 0; j < i; j++)
ryouheitakamoto 0:0b5a11c7df57 50 printf("%02hhx",command[j]);
ryouheitakamoto 0:0b5a11c7df57 51 printf("\r\n");
ryouheitakamoto 0:0b5a11c7df57 52
ryouheitakamoto 0:0b5a11c7df57 53 if(command[4] == 0x00)
ryouheitakamoto 0:0b5a11c7df57 54 doppler(command);
ryouheitakamoto 0:0b5a11c7df57 55 }
ryouheitakamoto 0:0b5a11c7df57 56 }
ryouheitakamoto 0:0b5a11c7df57 57 }
ryouheitakamoto 0:0b5a11c7df57 58
ryouheitakamoto 0:0b5a11c7df57 59
ryouheitakamoto 0:0b5a11c7df57 60