Railway Challenge / Mbed 2 deprecated challenge-ChaiUpdated

Dependencies:   mbed millis

Committer:
cdevarakonda
Date:
Wed Jun 15 13:36:11 2022 +0000
Revision:
28:1086791972d0
Child:
30:c65bf90e8f47
Update brakes pins, created brakes class and made new functions but still to be tested;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cdevarakonda 28:1086791972d0 1 #include "brakes.h"
cdevarakonda 28:1086791972d0 2 #include <mbed.h>
cdevarakonda 28:1086791972d0 3 #include "definitions.h"
cdevarakonda 28:1086791972d0 4 void Brakes::FrontBrakeOn()
cdevarakonda 28:1086791972d0 5 {
cdevarakonda 28:1086791972d0 6 brakeValve22=0;
cdevarakonda 28:1086791972d0 7 brakeValve32=1;
cdevarakonda 28:1086791972d0 8 }
cdevarakonda 28:1086791972d0 9
cdevarakonda 28:1086791972d0 10 void Brakes::RearBrakeOn()
cdevarakonda 28:1086791972d0 11 {
cdevarakonda 28:1086791972d0 12 brakeValve22=1;
cdevarakonda 28:1086791972d0 13 brakeValve32=0;
cdevarakonda 28:1086791972d0 14 }
cdevarakonda 28:1086791972d0 15 void Brakes::BrakesOn()
cdevarakonda 28:1086791972d0 16 {
cdevarakonda 28:1086791972d0 17 brakeValve22=0;
cdevarakonda 28:1086791972d0 18 brakeValve32=0;
cdevarakonda 28:1086791972d0 19 }
cdevarakonda 28:1086791972d0 20
cdevarakonda 28:1086791972d0 21 void Brakes::ParkMode()
cdevarakonda 28:1086791972d0 22 {
cdevarakonda 28:1086791972d0 23 BrakesOn();
cdevarakonda 28:1086791972d0 24 }
cdevarakonda 28:1086791972d0 25 void Brakes::MechanicalBraking(int brakeRate, Motor motor)
cdevarakonda 28:1086791972d0 26 {
cdevarakonda 28:1086791972d0 27 switch (brakeRate) {
cdevarakonda 28:1086791972d0 28 case 0: // NO BRAKING
cdevarakonda 28:1086791972d0 29 brakeValve32 = 1;//(PD_3)
cdevarakonda 28:1086791972d0 30 brakeValve22 = 1;//(PC_0)
cdevarakonda 28:1086791972d0 31 break;
cdevarakonda 28:1086791972d0 32
cdevarakonda 28:1086791972d0 33 case 1: //HALF BRAKING
cdevarakonda 28:1086791972d0 34 motor.throttle(0.0f);
cdevarakonda 28:1086791972d0 35 RearBrakeOn();
cdevarakonda 28:1086791972d0 36 break;
cdevarakonda 28:1086791972d0 37
cdevarakonda 28:1086791972d0 38 case 2 ... 4 : //FULL BRAKING
cdevarakonda 28:1086791972d0 39 motor.throttle(0.0f);
cdevarakonda 28:1086791972d0 40 BrakesOn();
cdevarakonda 28:1086791972d0 41 break;
cdevarakonda 28:1086791972d0 42
cdevarakonda 28:1086791972d0 43 default: // NO BRAKING
cdevarakonda 28:1086791972d0 44 brakeValve32 = 1;//(PD_3)
cdevarakonda 28:1086791972d0 45 brakeValve22 = 1;//(PC_0)
cdevarakonda 28:1086791972d0 46 break;
cdevarakonda 28:1086791972d0 47 }
cdevarakonda 28:1086791972d0 48 }
cdevarakonda 28:1086791972d0 49
cdevarakonda 28:1086791972d0 50 void Brakes::RegenControl(int ratecontrol,Motor motor)
cdevarakonda 28:1086791972d0 51 {
cdevarakonda 28:1086791972d0 52 switch (ratecontrol)
cdevarakonda 28:1086791972d0 53 {
cdevarakonda 28:1086791972d0 54 default:
cdevarakonda 28:1086791972d0 55 break;
cdevarakonda 28:1086791972d0 56
cdevarakonda 28:1086791972d0 57 case 0:
cdevarakonda 28:1086791972d0 58 motor.brake(0.0f);
cdevarakonda 28:1086791972d0 59 break;
cdevarakonda 28:1086791972d0 60
cdevarakonda 28:1086791972d0 61 case 1:
cdevarakonda 28:1086791972d0 62 motor.brake(0.25f);
cdevarakonda 28:1086791972d0 63 break;
cdevarakonda 28:1086791972d0 64
cdevarakonda 28:1086791972d0 65 case 2:
cdevarakonda 28:1086791972d0 66 motor.brake(0.5f);
cdevarakonda 28:1086791972d0 67 break;
cdevarakonda 28:1086791972d0 68
cdevarakonda 28:1086791972d0 69 case 3:
cdevarakonda 28:1086791972d0 70 motor.brake(0.75f);
cdevarakonda 28:1086791972d0 71 break;
cdevarakonda 28:1086791972d0 72
cdevarakonda 28:1086791972d0 73 case 4:
cdevarakonda 28:1086791972d0 74 motor.brake(1.0f);
cdevarakonda 28:1086791972d0 75 break;
cdevarakonda 28:1086791972d0 76 }
cdevarakonda 28:1086791972d0 77 }