ROBOCON 2019

Dependencies:   mbed

Committer:
Ryosei
Date:
Tue Jul 23 07:16:58 2019 +0000
Revision:
0:a1405cc91cca
getting to the data from linetracehub by RS485

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ryosei 0:a1405cc91cca 1 #include "mbed.h"
Ryosei 0:a1405cc91cca 2
Ryosei 0:a1405cc91cca 3 Serial pc(USBTX,USBRX);
Ryosei 0:a1405cc91cca 4 Serial linehubuart(PA_9,PA_10);
Ryosei 0:a1405cc91cca 5 /*
Ryosei 0:a1405cc91cca 6 struct linedata {
Ryosei 0:a1405cc91cca 7 unsigned int flont1:1;
Ryosei 0:a1405cc91cca 8 unsigned int flont2:1;
Ryosei 0:a1405cc91cca 9 unsigned int flont3:1;
Ryosei 0:a1405cc91cca 10 unsigned int flont4:1;
Ryosei 0:a1405cc91cca 11 unsigned int flont5:1;
Ryosei 0:a1405cc91cca 12 unsigned int flont6:1;
Ryosei 0:a1405cc91cca 13 unsigned int back1:1;
Ryosei 0:a1405cc91cca 14 unsigned int back2:1;
Ryosei 0:a1405cc91cca 15 unsigned int back3:1;
Ryosei 0:a1405cc91cca 16 unsigned int back4:1;
Ryosei 0:a1405cc91cca 17 unsigned int back5:1;
Ryosei 0:a1405cc91cca 18 unsigned int back6:1;
Ryosei 0:a1405cc91cca 19 unsigned int left1:1;
Ryosei 0:a1405cc91cca 20 unsigned int left2:1;
Ryosei 0:a1405cc91cca 21 unsigned int left3:1;
Ryosei 0:a1405cc91cca 22 unsigned int left4:1;
Ryosei 0:a1405cc91cca 23 unsigned int left5:1;
Ryosei 0:a1405cc91cca 24 unsigned int left6:1;
Ryosei 0:a1405cc91cca 25 unsigned int right1:1;
Ryosei 0:a1405cc91cca 26 unsigned int right2:1;
Ryosei 0:a1405cc91cca 27 unsigned int right3:1;
Ryosei 0:a1405cc91cca 28 unsigned int right4:1;
Ryosei 0:a1405cc91cca 29 unsigned int right5:1;
Ryosei 0:a1405cc91cca 30 unsigned int right6:1;
Ryosei 0:a1405cc91cca 31 unsigned int center1:1;
Ryosei 0:a1405cc91cca 32 unsigned int center2:1;
Ryosei 0:a1405cc91cca 33 unsigned int center3:1;
Ryosei 0:a1405cc91cca 34 unsigned int center4:1;
Ryosei 0:a1405cc91cca 35 unsigned int center5:1;
Ryosei 0:a1405cc91cca 36 unsigned int center6:1;
Ryosei 0:a1405cc91cca 37 unsigned int center7:1;
Ryosei 0:a1405cc91cca 38 unsigned int center8:1;
Ryosei 0:a1405cc91cca 39 };
Ryosei 0:a1405cc91cca 40 struct linedata Linedata;
Ryosei 0:a1405cc91cca 41 */
Ryosei 0:a1405cc91cca 42 void lineread(char buf[6])
Ryosei 0:a1405cc91cca 43 {
Ryosei 0:a1405cc91cca 44 if(linehubuart.readable()) {
Ryosei 0:a1405cc91cca 45 for(int i=0; i<=5; i++) {
Ryosei 0:a1405cc91cca 46 buf[i]=linehubuart.getc();
Ryosei 0:a1405cc91cca 47 }
Ryosei 0:a1405cc91cca 48 }
Ryosei 0:a1405cc91cca 49 }
Ryosei 0:a1405cc91cca 50
Ryosei 0:a1405cc91cca 51 void linedatacontrol(char buf[6],bool sentaku[48])
Ryosei 0:a1405cc91cca 52 {
Ryosei 0:a1405cc91cca 53 for(int i=0; i<=47; i++) {
Ryosei 0:a1405cc91cca 54 if(i<=7) {
Ryosei 0:a1405cc91cca 55 sentaku[i]=((buf[0] << i) & 0b10000000)>>7;
Ryosei 0:a1405cc91cca 56 } else if(i<=15) {
Ryosei 0:a1405cc91cca 57 sentaku[i]=((buf[1] << i-8) & 0b10000000)>>7;
Ryosei 0:a1405cc91cca 58 } else if(i<=23) {
Ryosei 0:a1405cc91cca 59 sentaku[i]=((buf[2] << i-16) & 0b10000000)>>7;
Ryosei 0:a1405cc91cca 60 } else if(i<=31) {
Ryosei 0:a1405cc91cca 61 sentaku[i]=((buf[3] << i-24) & 0b10000000)>>7;
Ryosei 0:a1405cc91cca 62 } else if(i<=39) {
Ryosei 0:a1405cc91cca 63 sentaku[i]=((buf[4] << i-32) & 0b10000000)>>7;
Ryosei 0:a1405cc91cca 64 } else if(i<=39) {
Ryosei 0:a1405cc91cca 65 sentaku[i]=((buf[5] << i-40) & 0b10000000)>>7;
Ryosei 0:a1405cc91cca 66 }
Ryosei 0:a1405cc91cca 67 }
Ryosei 0:a1405cc91cca 68 }
Ryosei 0:a1405cc91cca 69 bool sinri[48];
Ryosei 0:a1405cc91cca 70 char data[6];
Ryosei 0:a1405cc91cca 71 DigitalOut LED(D3);
Ryosei 0:a1405cc91cca 72 int main()
Ryosei 0:a1405cc91cca 73 {
Ryosei 0:a1405cc91cca 74 pc.baud(38400);
Ryosei 0:a1405cc91cca 75 linehubuart.baud(38400);
Ryosei 0:a1405cc91cca 76 for(int i=0; i<=47; i++) {
Ryosei 0:a1405cc91cca 77 sinri[i]=0;
Ryosei 0:a1405cc91cca 78 }
Ryosei 0:a1405cc91cca 79 while(1) {
Ryosei 0:a1405cc91cca 80 LED=0;
Ryosei 0:a1405cc91cca 81 lineread(data);
Ryosei 0:a1405cc91cca 82
Ryosei 0:a1405cc91cca 83 linedatacontrol(data,sinri);
Ryosei 0:a1405cc91cca 84
Ryosei 0:a1405cc91cca 85 for(int i=0; i<=47; i++) {
Ryosei 0:a1405cc91cca 86 pc.printf("%d",sinri[i]);
Ryosei 0:a1405cc91cca 87 }
Ryosei 0:a1405cc91cca 88 pc.printf("\n");
Ryosei 0:a1405cc91cca 89 }
Ryosei 0:a1405cc91cca 90 }