11
DATA_BOARD/data_board.cpp@2:9418258519ea, 2021-08-06 (annotated)
- Committer:
- yezhong
- Date:
- Fri Aug 06 09:03:02 2021 +0000
- Revision:
- 2:9418258519ea
- Parent:
- 0:dd5d4837292c
111
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
panzhan | 0:dd5d4837292c | 1 | #include "data_board.h" |
panzhan | 0:dd5d4837292c | 2 | |
panzhan | 0:dd5d4837292c | 3 | |
panzhan | 0:dd5d4837292c | 4 | |
panzhan | 0:dd5d4837292c | 5 | |
panzhan | 0:dd5d4837292c | 6 | Serial foot(PA_9, PA_10); // tx, rx U1 |
panzhan | 0:dd5d4837292c | 7 | |
panzhan | 0:dd5d4837292c | 8 | unsigned int flag_foot_A = 0, flag_foot_B = 0; |
panzhan | 0:dd5d4837292c | 9 | unsigned int Sfootnum = 0; |
panzhan | 0:dd5d4837292c | 10 | |
yezhong | 2:9418258519ea | 11 | uint8_t Sfootget[30] = {0}; |
yezhong | 2:9418258519ea | 12 | uint8_t Sfootuse[30] = {0}; |
panzhan | 0:dd5d4837292c | 13 | |
yezhong | 2:9418258519ea | 14 | uint16_t shou[15]={0}; |
yezhong | 2:9418258519ea | 15 | float shou1[15]={0}; |
panzhan | 0:dd5d4837292c | 16 | |
panzhan | 0:dd5d4837292c | 17 | |
panzhan | 0:dd5d4837292c | 18 | |
yezhong | 2:9418258519ea | 19 | |
panzhan | 0:dd5d4837292c | 20 | |
panzhan | 0:dd5d4837292c | 21 | |
panzhan | 0:dd5d4837292c | 22 | void gait_decode() |
yezhong | 2:9418258519ea | 23 | { |
yezhong | 2:9418258519ea | 24 | for(int i = 0; i < 15; i++) |
yezhong | 2:9418258519ea | 25 | { |
yezhong | 2:9418258519ea | 26 | shou[i]=(Sfootuse[2*i]<<8)|Sfootuse[2*i+1]; |
yezhong | 2:9418258519ea | 27 | } |
yezhong | 2:9418258519ea | 28 | for(int i = 0; i < 15; i++) |
yezhong | 2:9418258519ea | 29 | { |
yezhong | 2:9418258519ea | 30 | shou1[i]=(float)shou[i]/4096*3.3; |
yezhong | 2:9418258519ea | 31 | } |
yezhong | 2:9418258519ea | 32 | pc.printf("%2.2f %2.2f %2.2f %2.2f %2.2f %2.2f %2.2f %2.2f %2.2f\r\n",shou1[6],shou1[7],shou1[8],shou1[9],shou1[10],shou1[11],shou1[12],shou1[13],shou1[14]); |
panzhan | 0:dd5d4837292c | 33 | } |
panzhan | 0:dd5d4837292c | 34 | |
panzhan | 0:dd5d4837292c | 35 | void gait_clear() |
panzhan | 0:dd5d4837292c | 36 | { |
yezhong | 2:9418258519ea | 37 | for(int i = 0; i < 30; i++){ |
panzhan | 0:dd5d4837292c | 38 | Sfootuse[i] = 0; |
panzhan | 0:dd5d4837292c | 39 | } |
panzhan | 0:dd5d4837292c | 40 | } |
panzhan | 0:dd5d4837292c | 41 | |
panzhan | 0:dd5d4837292c | 42 | |
panzhan | 0:dd5d4837292c | 43 | void serial_board_isr(void) |
panzhan | 0:dd5d4837292c | 44 | { |
panzhan | 0:dd5d4837292c | 45 | // pc.printf("begin\n"); |
panzhan | 0:dd5d4837292c | 46 | while(foot.readable()) |
panzhan | 0:dd5d4837292c | 47 | { |
yezhong | 2:9418258519ea | 48 | uint8_t c = foot.getc(); |
yezhong | 2:9418258519ea | 49 | if(c ==0x0A) |
panzhan | 0:dd5d4837292c | 50 | { |
panzhan | 0:dd5d4837292c | 51 | flag_foot_A = 1; |
panzhan | 0:dd5d4837292c | 52 | |
panzhan | 0:dd5d4837292c | 53 | flag_foot_B = 0; |
panzhan | 0:dd5d4837292c | 54 | Sfootnum = 0; |
yezhong | 2:9418258519ea | 55 | for(unsigned int i = 0; i < 30; i++) |
panzhan | 0:dd5d4837292c | 56 | { |
panzhan | 0:dd5d4837292c | 57 | Sfootget[i] = 0; |
panzhan | 0:dd5d4837292c | 58 | } |
panzhan | 0:dd5d4837292c | 59 | |
panzhan | 0:dd5d4837292c | 60 | break; |
panzhan | 0:dd5d4837292c | 61 | } |
yezhong | 2:9418258519ea | 62 | if(c ==0x0B) |
panzhan | 0:dd5d4837292c | 63 | { |
panzhan | 0:dd5d4837292c | 64 | flag_foot_B = 1; |
panzhan | 0:dd5d4837292c | 65 | } |
panzhan | 0:dd5d4837292c | 66 | |
panzhan | 0:dd5d4837292c | 67 | if(flag_foot_A == 1) |
panzhan | 0:dd5d4837292c | 68 | { |
yezhong | 2:9418258519ea | 69 | if((flag_foot_B != 1) && (Sfootnum < 30)) |
panzhan | 0:dd5d4837292c | 70 | { |
panzhan | 0:dd5d4837292c | 71 | Sfootget[Sfootnum] = c; |
panzhan | 0:dd5d4837292c | 72 | } |
panzhan | 0:dd5d4837292c | 73 | |
panzhan | 0:dd5d4837292c | 74 | Sfootnum++; |
panzhan | 0:dd5d4837292c | 75 | |
yezhong | 2:9418258519ea | 76 | if((flag_foot_B == 1) && (Sfootnum != 31)) |
panzhan | 0:dd5d4837292c | 77 | { |
panzhan | 0:dd5d4837292c | 78 | flag_foot_A = 0; |
panzhan | 0:dd5d4837292c | 79 | flag_foot_B = 0; |
panzhan | 0:dd5d4837292c | 80 | Sfootnum = 0; |
panzhan | 0:dd5d4837292c | 81 | } |
panzhan | 0:dd5d4837292c | 82 | |
yezhong | 2:9418258519ea | 83 | if((flag_foot_B == 1) && (Sfootnum == 31)) |
panzhan | 0:dd5d4837292c | 84 | { |
panzhan | 0:dd5d4837292c | 85 | flag_foot_A = 0; |
panzhan | 0:dd5d4837292c | 86 | flag_foot_B = 0; |
panzhan | 0:dd5d4837292c | 87 | Sfootnum = 0; |
panzhan | 0:dd5d4837292c | 88 | |
yezhong | 2:9418258519ea | 89 | for(unsigned int i = 0; i < 30; i++) |
panzhan | 0:dd5d4837292c | 90 | { |
yezhong | 2:9418258519ea | 91 | // Sfootuse[i] = Sfootget[i] - '0'; |
yezhong | 2:9418258519ea | 92 | Sfootuse[i] = Sfootget[i] ; |
panzhan | 0:dd5d4837292c | 93 | } |
panzhan | 0:dd5d4837292c | 94 | |
panzhan | 0:dd5d4837292c | 95 | gait_decode(); |
panzhan | 0:dd5d4837292c | 96 | gait_clear(); |
panzhan | 0:dd5d4837292c | 97 | } |
panzhan | 0:dd5d4837292c | 98 | } |
panzhan | 0:dd5d4837292c | 99 | } |
panzhan | 0:dd5d4837292c | 100 | } |