Firm for BotShare

Dependencies:   mbed Watchdog

Committer:
ruslanbredun
Date:
Tue Nov 02 11:31:02 2021 +0000
Revision:
1:2c9f4d24d521
Parent:
0:858059db6068
Clear lib;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ruslanbredun 0:858059db6068 1 #include <global.h>
ruslanbredun 0:858059db6068 2
ruslanbredun 0:858059db6068 3 Serial RS2(UART2_TX, UART2_RX);
ruslanbredun 0:858059db6068 4
ruslanbredun 0:858059db6068 5 Timer timer;
ruslanbredun 0:858059db6068 6 Watchdog watchDog;
ruslanbredun 0:858059db6068 7
ruslanbredun 0:858059db6068 8 typedef uint8_t byte;
ruslanbredun 0:858059db6068 9
ruslanbredun 0:858059db6068 10 DigitalOut Select2(DE_TXD_2);
ruslanbredun 0:858059db6068 11
ruslanbredun 0:858059db6068 12 bool sendFlag = false;
ruslanbredun 0:858059db6068 13 char c = '1';
ruslanbredun 0:858059db6068 14
ruslanbredun 0:858059db6068 15 void UART2_callback()
ruslanbredun 0:858059db6068 16 {
ruslanbredun 0:858059db6068 17 c = RS2.getc();
ruslanbredun 0:858059db6068 18 if(c == '5') {
ruslanbredun 0:858059db6068 19 sendFlag = true;
ruslanbredun 0:858059db6068 20 } else {
ruslanbredun 0:858059db6068 21 Select2 = 1;
ruslanbredun 0:858059db6068 22 wait_ms(90);
ruslanbredun 0:858059db6068 23 Select2 = 0;
ruslanbredun 0:858059db6068 24 }
ruslanbredun 0:858059db6068 25 }
ruslanbredun 0:858059db6068 26
ruslanbredun 0:858059db6068 27 int main()
ruslanbredun 0:858059db6068 28 {
ruslanbredun 0:858059db6068 29 RS2.baud (115200);
ruslanbredun 0:858059db6068 30 Select2 = 0;
ruslanbredun 0:858059db6068 31 RS2.attach(&UART2_callback);
ruslanbredun 0:858059db6068 32
ruslanbredun 0:858059db6068 33 int US1_data = 0;
ruslanbredun 0:858059db6068 34 bool IR_FR_data = 0,IR_FL_data = 0, IR_BR_data = 0,IR_BL_data = 0, Bak_data = 0;
ruslanbredun 0:858059db6068 35
ruslanbredun 0:858059db6068 36 timer.start();
ruslanbredun 0:858059db6068 37 watchDog.Configure(5.0);
ruslanbredun 0:858059db6068 38
ruslanbredun 0:858059db6068 39 JSN_SR04 US_sensor_left (PB_14, PA_9);
ruslanbredun 0:858059db6068 40
ruslanbredun 0:858059db6068 41 US_sensor_left.setRanges (20, 300);
ruslanbredun 0:858059db6068 42
ruslanbredun 0:858059db6068 43 DigitalIn Bak_limit_sensor (PA_11);
ruslanbredun 0:858059db6068 44 E18_D80NK IR_sensor_front_left (PB_13);
ruslanbredun 0:858059db6068 45 E18_D80NK IR_sensor_front_right (PB_12);
ruslanbredun 0:858059db6068 46 E18_D80NK IR_sensor_back_right (PB_0);
ruslanbredun 0:858059db6068 47 E18_D80NK IR_sensor_back_left (PB_1);
ruslanbredun 0:858059db6068 48
ruslanbredun 0:858059db6068 49
ruslanbredun 0:858059db6068 50 while (true) {
ruslanbredun 0:858059db6068 51 watchDog.Service();
ruslanbredun 0:858059db6068 52
ruslanbredun 0:858059db6068 53 US_sensor_left.startMeasurement ();
ruslanbredun 0:858059db6068 54 US1_data = US_sensor_left.getDistance_cm ();
ruslanbredun 0:858059db6068 55 wait_ms(20);
ruslanbredun 0:858059db6068 56
ruslanbredun 0:858059db6068 57 Bak_data = Bak_limit_sensor.read();
ruslanbredun 0:858059db6068 58 IR_FL_data = IR_sensor_front_left.checkObstacle ();
ruslanbredun 0:858059db6068 59 IR_FR_data = IR_sensor_front_right.checkObstacle ();
ruslanbredun 0:858059db6068 60 IR_BR_data = IR_sensor_back_right.checkObstacle ();
ruslanbredun 0:858059db6068 61 IR_BL_data = IR_sensor_back_left.checkObstacle ();
ruslanbredun 0:858059db6068 62
ruslanbredun 0:858059db6068 63 if(sendFlag) {
ruslanbredun 0:858059db6068 64 Select2 = 1;
ruslanbredun 0:858059db6068 65 RS2.printf ("%d_%d_%d_%d_%d_%d\r\n", IR_FL_data, IR_FR_data, IR_BR_data, IR_BL_data, Bak_data, US1_data); //,(int)((Vcc -24 ) * 5 + 50));
ruslanbredun 0:858059db6068 66 wait_ms(5);
ruslanbredun 0:858059db6068 67 sendFlag = false;
ruslanbredun 0:858059db6068 68 Select2 = 0;
ruslanbredun 0:858059db6068 69 }
ruslanbredun 0:858059db6068 70 }
ruslanbredun 0:858059db6068 71 }