test

Dependencies:   SoftSerial mbed

main.cpp

Committer:
qwer7ttw
Date:
2017-10-18
Revision:
1:44d613ff2e6c
Parent:
0:4beb82efd0cf

File content as of revision 1:44d613ff2e6c:

#include "mbed.h"
#include "SoftSerial.h"
Serial pc(SERIAL_TX, SERIAL_RX);
Serial mySerial(PC_10,PC_11);

int main()
{
unsigned char re_Buf[11], counter = 0;
unsigned char sign = 0;
int data_Buf[3] = {0};
uint16_t distance = 0;
unsigned char i = 0, sum = 0;
int sum1=0;
int j=0;
int writes[3]={0xA5,0x53,0xF8};
mySerial.baud(9600);
    while(1)
    {
    if(mySerial.writeable())
    {   mySerial.putc(0xA5);
        mySerial.putc(0x52);
        mySerial.putc(0xF7);
       
        break;
        

    }
        wait(0.01);
      
    }
    while(1){
        i = 0, sum = 0;
        distance =0;
        while (mySerial.readable()) 
        {
            re_Buf[counter] = (unsigned char)mySerial.getc();
            if (counter == 0 && re_Buf[0] != 0x5A) return;
            counter++;        
            if (counter == 8) // Enough Data available?
                {
                    counter = 0; // Get Ready for the next stream
                    sign = 1;
                    break;
                }
        }
        if (sign)
        {
            sign = 0;
            for (i = 0; i < 7; i++)
                sum += re_Buf[i];
            if (sum == re_Buf[i] ) // Check Header
            {
                data_Buf[0] = re_Buf[4];
                data_Buf[1] = re_Buf[5];
                data_Buf[2] = re_Buf[6];
                distance = data_Buf[0] << 8 | data_Buf[1];
                sum1+=distance;
                j++;
                if(j==2)
                {pc.printf("distance: %dmm\n",sum1/2);j=0;sum1=0;}
            }
        }
    }
}