ROBOCON 2019

Dependencies:   mbed

main.cpp

Committer:
Ryosei
Date:
2019-07-23
Revision:
0:a1405cc91cca

File content as of revision 0:a1405cc91cca:

#include "mbed.h"

Serial pc(USBTX,USBRX);
Serial linehubuart(PA_9,PA_10);
/*
struct linedata {
    unsigned int flont1:1;
    unsigned int flont2:1;
    unsigned int flont3:1;
    unsigned int flont4:1;
    unsigned int flont5:1;
    unsigned int flont6:1;
    unsigned int back1:1;
    unsigned int back2:1;
    unsigned int back3:1;
    unsigned int back4:1;
    unsigned int back5:1;
    unsigned int back6:1;
    unsigned int left1:1;
    unsigned int left2:1;
    unsigned int left3:1;
    unsigned int left4:1;
    unsigned int left5:1;
    unsigned int left6:1;
    unsigned int right1:1;
    unsigned int right2:1;
    unsigned int right3:1;
    unsigned int right4:1;
    unsigned int right5:1;
    unsigned int right6:1;
    unsigned int center1:1;
    unsigned int center2:1;
    unsigned int center3:1;
    unsigned int center4:1;
    unsigned int center5:1;
    unsigned int center6:1;
    unsigned int center7:1;
    unsigned int center8:1;
};
struct linedata Linedata;
*/
void lineread(char buf[6])
{
    if(linehubuart.readable()) {
        for(int i=0; i<=5; i++) {
            buf[i]=linehubuart.getc();
        }
    }
}

void linedatacontrol(char buf[6],bool sentaku[48])
{
    for(int i=0; i<=47; i++) {
        if(i<=7) {
            sentaku[i]=((buf[0] << i) & 0b10000000)>>7;
        } else if(i<=15) {
            sentaku[i]=((buf[1] << i-8) & 0b10000000)>>7;
        } else if(i<=23) {
            sentaku[i]=((buf[2] << i-16) & 0b10000000)>>7;
        } else if(i<=31) {
            sentaku[i]=((buf[3] << i-24) & 0b10000000)>>7;
        } else if(i<=39) {
            sentaku[i]=((buf[4] << i-32) & 0b10000000)>>7;
        } else if(i<=39) {
            sentaku[i]=((buf[5] << i-40) & 0b10000000)>>7;
        }
    }
}
bool sinri[48];
char data[6];
DigitalOut LED(D3); 
int main()
{
    pc.baud(38400);
    linehubuart.baud(38400);
    for(int i=0; i<=47; i++) {
        sinri[i]=0;
    }
    while(1) {
        LED=0;
        lineread(data);

        linedatacontrol(data,sinri);
        
        for(int i=0; i<=47; i++) {
            pc.printf("%d",sinri[i]);
        }
        pc.printf("\n");
    }
}