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.
Diff: Etat_Futur.cpp
- Revision:
- 0:af7247fcd74c
diff -r 000000000000 -r af7247fcd74c Etat_Futur.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Etat_Futur.cpp Sun Jun 15 15:32:04 2014 +0000
@@ -0,0 +1,126 @@
+#include "mbed.h"
+
+extern float TemporisationDemarreur,commandeLimite,comptDem,vitesseMin;
+extern int courantLim;
+extern int tensionMin, tensionMax;
+extern char Etat_Precedant, Etat;
+extern int compteur_Demarreur,compteur_Tempo;
+extern char demInfini,infini;
+DigitalIn frein(p12);
+AnalogIn Volts(p20);
+AnalogIn Ampere(p17);
+
+void Etat_Futur() {
+ switch (Etat_Precedant){
+ //Etat normal
+ case 0:
+ if(frein.read()==1)
+ Etat=6;
+ else{
+ if(Volts.read()*100<=tensionMin)
+ Etat=1;
+ else{
+ if(Ampere.read()*48>=commandeLimite)
+ Etat=3;
+ else
+ Etat=0;
+ }
+ }
+ break;
+ // detection d'une batterie faible
+ case 1:
+ if(frein.read()==1)
+ Etat=6;
+ else{
+ if(int(Volts.read()*100)>=(tensionMax))
+ Etat=0;
+ else
+ {
+ if((infini==0)&&(compteur_Demarreur>=(TemporisationDemarreur*10)))
+ Etat=2;
+ else
+ Etat=1;
+ }
+ }
+ break;
+ //compteur du demarreur finit
+ case 2:
+ if(frein.read()==1)
+ Etat=7;
+ else{
+ if(int(Volts.read()*100)>=(tensionMax))
+ Etat=0;
+ else
+ Etat=2;
+ }
+ break;
+ //detection fort courant
+ case 3:
+ if(frein.read()==1)
+ Etat=6;
+ else{
+ if(Ampere.read()*48>=commandeLimite)
+ Etat=0;
+ else
+ {
+ if(compteur_Tempo>=(comptDem*10))
+ Etat=4;
+ else
+ Etat=3;
+ }
+ }
+ break;
+ // temporisation lors du fort courant fini
+ case 4:
+ if(frein.read()==1)
+ Etat=6;
+ else{
+ if(Ampere.read()*48>=commandeLimite)
+ Etat=0;
+ else
+ {
+ if((infini==0)&&(compteur_Demarreur>=(TemporisationDemarreur*10)))
+ {
+ if(int(Volts.read()*100)<=(tensionMin))
+ Etat=2;
+ else
+ Etat=5;
+ }
+ else
+ Etat=4;
+ }
+ }
+ break;
+ // fin du demarreur pour un fort courant
+ case 5:
+ if(frein.read()==1)
+ Etat=6;
+ else{
+ if(Ampere.read()*48>=commandeLimite)
+ Etat=0;
+ else
+ {
+ if(int(Volts.read()*100)<=(tensionMin))
+ Etat=2;
+ else
+ Etat=5;
+ }
+ }
+ break;
+ // freinage
+ case 6 :
+ if(frein==0)
+ Etat=0;
+ else
+ Etat=6;
+ break;
+ // freinage lors de la recharge de la batterie
+ case 7:
+ if(frein==0)
+ Etat=0;
+ else
+ Etat=7;
+ break;
+ }
+}
+
\ No newline at end of file