altb_pmic / Mbed 2 deprecated Grove-TF_Mini_LiDAR

Dependencies:   mbed

Committer:
pmic
Date:
Tue Aug 13 17:03:29 2019 +0000
Revision:
0:03153e3cb89f
Child:
1:ce38967a0d22
its something (first attempt, not rly usefull)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmic 0:03153e3cb89f 1 #include "mbed.h"
pmic 0:03153e3cb89f 2 #include "IIR_filter.h"
pmic 0:03153e3cb89f 3
pmic 0:03153e3cb89f 4 /* Notes pmic 13.08.2019:
pmic 0:03153e3cb89f 5 -
pmic 0:03153e3cb89f 6 */
pmic 0:03153e3cb89f 7
pmic 0:03153e3cb89f 8 // nt baudrate = 115200;
pmic 0:03153e3cb89f 9 Serial pc(SERIAL_TX, SERIAL_RX); // serial connection via USB - programmer
pmic 0:03153e3cb89f 10 Timer t; // timer to analyse Button
pmic 0:03153e3cb89f 11 Timer twhile; // timer for time measurement (usage in while(1), without timer attached)
pmic 0:03153e3cb89f 12
pmic 0:03153e3cb89f 13
pmic 0:03153e3cb89f 14 Serial TFmini(PC_10, PC_11); // TX, RX
pmic 0:03153e3cb89f 15 int dist; //actual distance measurements of LiDAR
pmic 0:03153e3cb89f 16 int strength; //signal strength of LiDAR
pmic 0:03153e3cb89f 17 int check; //save check value
pmic 0:03153e3cb89f 18 int i;
pmic 0:03153e3cb89f 19 char uart[9]; //save data measured by LiDAR
pmic 0:03153e3cb89f 20 const int HEADER=0x59; //frame header of data package
pmic 0:03153e3cb89f 21
pmic 0:03153e3cb89f 22 volatile char c;
pmic 0:03153e3cb89f 23
pmic 0:03153e3cb89f 24 void onCharReceived()
pmic 0:03153e3cb89f 25 {
pmic 0:03153e3cb89f 26 c = TFmini.getc();
pmic 0:03153e3cb89f 27 }
pmic 0:03153e3cb89f 28
pmic 0:03153e3cb89f 29 int k;
pmic 0:03153e3cb89f 30 bool was_readable;
pmic 0:03153e3cb89f 31 // float Ts = 0.05f; // ??? sample time of main loop, 20 Hz
pmic 0:03153e3cb89f 32
pmic 0:03153e3cb89f 33 // IIR_filter pt1(0.2f, Ts, 1.0f);
pmic 0:03153e3cb89f 34 // float distf = 0.0f;
pmic 0:03153e3cb89f 35 // float strengthf = 0.0f;
pmic 0:03153e3cb89f 36
pmic 0:03153e3cb89f 37 // main program and control loop
pmic 0:03153e3cb89f 38 // -----------------------------------------------------------------------------
pmic 0:03153e3cb89f 39 int main()
pmic 0:03153e3cb89f 40 {
pmic 0:03153e3cb89f 41 pc.baud(115200); // for serial comm. to pc
pmic 0:03153e3cb89f 42 TFmini.baud(115200); // for serial comm. from TFmini
pmic 0:03153e3cb89f 43 k = 0;
pmic 0:03153e3cb89f 44
pmic 0:03153e3cb89f 45 TFmini.attach(&onCharReceived, Serial::RxIrq);
pmic 0:03153e3cb89f 46 // was_readable = false;
pmic 0:03153e3cb89f 47
pmic 0:03153e3cb89f 48 //pt1.reset(0.0f);
pmic 0:03153e3cb89f 49 twhile.start(); // timer for time measurement (usage in while(1), without timer attached)
pmic 0:03153e3cb89f 50 while(1) {
pmic 0:03153e3cb89f 51
pmic 0:03153e3cb89f 52 was_readable = true;
pmic 0:03153e3cb89f 53
pmic 0:03153e3cb89f 54 if (TFmini.readable()) { //check if serial port has data input
pmic 0:03153e3cb89f 55 was_readable = true;
pmic 0:03153e3cb89f 56 /*if(TFmini.getc() == HEADER) { //assess data package frame header 0x59
pmic 0:03153e3cb89f 57 uart[0]=HEADER;
pmic 0:03153e3cb89f 58 if (TFmini.getc() == HEADER) { //assess data package frame header 0x59
pmic 0:03153e3cb89f 59 uart[1] = HEADER;
pmic 0:03153e3cb89f 60 for (i = 2; i < 9; i++) { //save data in array
pmic 0:03153e3cb89f 61 uart[i] = TFmini.getc();
pmic 0:03153e3cb89f 62 }
pmic 0:03153e3cb89f 63 check = uart[0] + uart[1] + uart[2] + uart[3] + uart[4] + uart[5] + uart[6] + uart[7];
pmic 0:03153e3cb89f 64 if (uart[8] == (check & 0xff)) { //verify the received data as per protocol
pmic 0:03153e3cb89f 65 dist = uart[2] + uart[3] * 256; //calculate distance value
pmic 0:03153e3cb89f 66 strength = uart[4] + uart[5] * 256; //calculate signal strength value
pmic 0:03153e3cb89f 67 }
pmic 0:03153e3cb89f 68 }
pmic 0:03153e3cb89f 69 }*/
pmic 0:03153e3cb89f 70 } else {
pmic 0:03153e3cb89f 71 was_readable = false;
pmic 0:03153e3cb89f 72 }
pmic 0:03153e3cb89f 73
pmic 0:03153e3cb89f 74 // distf = pt1((float)dist);
pmic 0:03153e3cb89f 75 k++;
pmic 0:03153e3cb89f 76 // if(was_readable) pc.printf("%10i was readable\r\n", k);
pmic 0:03153e3cb89f 77 // else pc.printf("%10i was not readable\r\n", k);
pmic 0:03153e3cb89f 78 // if( TFmini.readable()) pc.printf("%10i %10i\r\n", k, TFmini.getc());
pmic 0:03153e3cb89f 79 pc.printf("%10i %10i\r\n", k, (int)c);
pmic 0:03153e3cb89f 80 //pc.printf("%10i %10.6e %10i\r\n", k, twhile.read(), dist);
pmic 0:03153e3cb89f 81 //wait_ms(100);
pmic 0:03153e3cb89f 82 }
pmic 0:03153e3cb89f 83 }