Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:03153e3cb89f, 2019-08-13 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |