ARES
/
Timer
Time is good
Fork of Robot2016_2-0 by
main.cpp
- Committer:
- IceTeam
- Date:
- 2016-05-05
- Revision:
- 81:e7b03e81b025
- Parent:
- 80:cd4960dfa47e
- Child:
- 82:07e13071dd7b
File content as of revision 81:e7b03e81b025:
#include "entete.h" BusOut drapeau (PC_8, PC_6, PC_5); RoboClaw roboclaw(ADR, 460800, PA_11, PA_12); AnalogIn Rcapt1(PA_4); int RvalRcapt1 = 0; AnalogIn Rcapt2(PB_0); int RvalRcapt2 = 0; AnalogIn Rcapt3(PC_1); int RvalRcapt3 = 0; int Ravance = 1; DigitalIn start(PB_7); /* Debut du programme */ int main(void) { Ticker ticker; ticker.attach(&Sharps, 0.01); TestDist3(1,1); while(1); } void Sharps() { if (Rcapt1.read() > R_SEUIL_SHARP) RvalRcapt1++; else RvalRcapt1--; RvalRcapt1 = RvalRcapt1 > 10 ? 10 : RvalRcapt1; RvalRcapt1 = RvalRcapt1 < 0 ? 0 : RvalRcapt1; if (Rcapt2.read() > R_SEUIL_SHARP) RvalRcapt2++; else RvalRcapt2--; RvalRcapt2 = RvalRcapt2 > 10 ? 10 : RvalRcapt2; RvalRcapt2 = RvalRcapt2 < 0 ? 0 : RvalRcapt2; if (Rcapt3.read() > R_SEUIL_SHARP) RvalRcapt3++; else RvalRcapt3--; RvalRcapt3 = RvalRcapt3 > 10 ? 10 : RvalRcapt3; RvalRcapt3 = RvalRcapt3 < 0 ? 0 : RvalRcapt3; if (RvalRcapt1 >= 5 || RvalRcapt2 >= 5 || RvalRcapt3 >= 5) Ravance = 0; else Ravance = 1; if (Ravance == 0) drapeau = 1; else drapeau = 2; } void GotoDist(float timer) { Timer t; roboclaw.SpeedAccelM1(accel_dista, vitesse_dista); roboclaw.SpeedAccelM2(accel_dista, vitesse_dista); t.reset(); t.start(); while (t.read() < timer) { if (Ravance != 1) { roboclaw.ForwardM1(0); roboclaw.ForwardM2(0); t.stop(); while (Ravance != 1); roboclaw.SpeedAccelM1(accel_dista, vitesse_dista); roboclaw.SpeedAccelM2(accel_dista, vitesse_dista); t.start(); } } roboclaw.ForwardM1(0); roboclaw.ForwardM2(0); t.stop(); t.reset(); wait(waiting_time); } void GotoThet (float timer, int signe) { Timer t; if (signe < 0) { roboclaw.SpeedAccelM1(accel_dista, vitesse_dista); roboclaw.SpeedAccelM2(-accel_dista, -vitesse_dista); } else { roboclaw.SpeedAccelM1(-accel_dista, -vitesse_dista); roboclaw.SpeedAccelM2(accel_dista, vitesse_dista); } t.reset(); t.start(); while (t.read() < timer) { if (Ravance != 1) { roboclaw.ForwardM1(0); roboclaw.ForwardM2(0); t.stop(); while (Ravance != 1); t.start(); } if (signe < 0) { roboclaw.SpeedAccelM1(accel_dista, vitesse_dista); roboclaw.SpeedAccelM2(-accel_dista, -vitesse_dista); } else { roboclaw.SpeedAccelM1(-accel_dista, -vitesse_dista); roboclaw.SpeedAccelM2(accel_dista, vitesse_dista); } } roboclaw.ForwardM1(0); roboclaw.ForwardM2(0); t.stop(); t.reset(); wait(waiting_time); }