Руслан Бредун
/
Santec
Firm for BotShare
main.cpp@1:2c9f4d24d521, 2021-11-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |