doppler shift / Mbed 2 deprecated calsat32_5

Dependencies:   mbed

Committer:
ryouheitakamoto
Date:
Wed Dec 16 14:44:35 2020 +0000
Revision:
4:6e9a233c748d
Parent:
3:61e7dda0c14d
ok? _2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryouheitakamoto 0:c5c02975ae0c 1 #include "mbed.h"
KINU 2:43801dc371d0 2 /*ドップラーシフト対策 calsatが計算した周波数のデータを受け取る*/
ryouheitakamoto 0:c5c02975ae0c 3 Serial pc(SERIAL_TX, SERIAL_RX);
ryouheitakamoto 0:c5c02975ae0c 4 Serial device(PA_9,PA_10);
ryouheitakamoto 4:6e9a233c748d 5 #define kHz 1000
ryouheitakamoto 4:6e9a233c748d 6 #define MHz 1000000
ryouheitakamoto 0:c5c02975ae0c 7
ryouheitakamoto 3:61e7dda0c14d 8 void doppler() //データを取得し、出力する関数
ryouheitakamoto 3:61e7dda0c14d 9 {
ryouheitakamoto 3:61e7dda0c14d 10 int data[10] = {0};
ryouheitakamoto 3:61e7dda0c14d 11 int flag = 0;
ryouheitakamoto 4:6e9a233c748d 12 int doppler = 0;
ryouheitakamoto 3:61e7dda0c14d 13 while(1) {
ryouheitakamoto 0:c5c02975ae0c 14 char c = device.getc();
ryouheitakamoto 3:61e7dda0c14d 15 if(c == 0x00)
ryouheitakamoto 3:61e7dda0c14d 16 ;
ryouheitakamoto 3:61e7dda0c14d 17 if(c == 0xfd) { //FD(終了コマンドがきたら終了
ryouheitakamoto 3:61e7dda0c14d 18 for(int i = 0; i < flag; i++)
ryouheitakamoto 3:61e7dda0c14d 19 printf("%d ", data[i]);
ryouheitakamoto 4:6e9a233c748d 20
ryouheitakamoto 4:6e9a233c748d 21 doppler = 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 4:6e9a233c748d 22 printf("\n%d\n",doppler);
ryouheitakamoto 4:6e9a233c748d 23
ryouheitakamoto 3:61e7dda0c14d 24 break;
ryouheitakamoto 3:61e7dda0c14d 25 }
ryouheitakamoto 3:61e7dda0c14d 26 else{
ryouheitakamoto 3:61e7dda0c14d 27 printf("%02hhx ",c);
ryouheitakamoto 3:61e7dda0c14d 28 data[flag] = (c >> 4)&0xf;
ryouheitakamoto 3:61e7dda0c14d 29 data[flag + 1] = c&0xf;
ryouheitakamoto 3:61e7dda0c14d 30 flag += 2;
ryouheitakamoto 0:c5c02975ae0c 31 }
ryouheitakamoto 0:c5c02975ae0c 32 }
ryouheitakamoto 0:c5c02975ae0c 33 }
ryouheitakamoto 3:61e7dda0c14d 34
ryouheitakamoto 3:61e7dda0c14d 35 int main() {
ryouheitakamoto 3:61e7dda0c14d 36 device.baud(9600);
ryouheitakamoto 3:61e7dda0c14d 37 pc.baud(921600);
ryouheitakamoto 3:61e7dda0c14d 38 while(1) {
ryouheitakamoto 3:61e7dda0c14d 39 char c = device.getc();
ryouheitakamoto 3:61e7dda0c14d 40
ryouheitakamoto 3:61e7dda0c14d 41 if(c == 0xfe) { //FEコマンドがきたらdataが始まる
ryouheitakamoto 0:c5c02975ae0c 42
ryouheitakamoto 3:61e7dda0c14d 43 while(1) {
ryouheitakamoto 3:61e7dda0c14d 44 c = device.getc();
ryouheitakamoto 3:61e7dda0c14d 45 if(c == 0x00) { //サブコマンドがきたらデータ部分を読み取り始める
ryouheitakamoto 3:61e7dda0c14d 46
ryouheitakamoto 3:61e7dda0c14d 47 doppler();
ryouheitakamoto 3:61e7dda0c14d 48 printf("\r\n");
ryouheitakamoto 3:61e7dda0c14d 49 break;
ryouheitakamoto 0:c5c02975ae0c 50 }
ryouheitakamoto 3:61e7dda0c14d 51
ryouheitakamoto 3:61e7dda0c14d 52 }
ryouheitakamoto 0:c5c02975ae0c 53 }
ryouheitakamoto 0:c5c02975ae0c 54 }
ryouheitakamoto 0:c5c02975ae0c 55 }
ryouheitakamoto 0:c5c02975ae0c 56
ryouheitakamoto 0:c5c02975ae0c 57
ryouheitakamoto 0:c5c02975ae0c 58