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
main.cpp@4:6e9a233c748d, 2020-12-16 (annotated)
- 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?
User | Revision | Line number | New 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 |