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.
Etat_Futur.cpp@0:af7247fcd74c, 2014-06-15 (annotated)
- Committer:
- arn_beauclair
- Date:
- Sun Jun 15 15:32:04 2014 +0000
- Revision:
- 0:af7247fcd74c
ADS_technologie
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| arn_beauclair | 0:af7247fcd74c | 1 | #include "mbed.h" |
| arn_beauclair | 0:af7247fcd74c | 2 | |
| arn_beauclair | 0:af7247fcd74c | 3 | extern float TemporisationDemarreur,commandeLimite,comptDem,vitesseMin; |
| arn_beauclair | 0:af7247fcd74c | 4 | extern int courantLim; |
| arn_beauclair | 0:af7247fcd74c | 5 | extern int tensionMin, tensionMax; |
| arn_beauclair | 0:af7247fcd74c | 6 | extern char Etat_Precedant, Etat; |
| arn_beauclair | 0:af7247fcd74c | 7 | extern int compteur_Demarreur,compteur_Tempo; |
| arn_beauclair | 0:af7247fcd74c | 8 | extern char demInfini,infini; |
| arn_beauclair | 0:af7247fcd74c | 9 | DigitalIn frein(p12); |
| arn_beauclair | 0:af7247fcd74c | 10 | AnalogIn Volts(p20); |
| arn_beauclair | 0:af7247fcd74c | 11 | AnalogIn Ampere(p17); |
| arn_beauclair | 0:af7247fcd74c | 12 | |
| arn_beauclair | 0:af7247fcd74c | 13 | void Etat_Futur() { |
| arn_beauclair | 0:af7247fcd74c | 14 | switch (Etat_Precedant){ |
| arn_beauclair | 0:af7247fcd74c | 15 | //Etat normal |
| arn_beauclair | 0:af7247fcd74c | 16 | case 0: |
| arn_beauclair | 0:af7247fcd74c | 17 | if(frein.read()==1) |
| arn_beauclair | 0:af7247fcd74c | 18 | Etat=6; |
| arn_beauclair | 0:af7247fcd74c | 19 | else{ |
| arn_beauclair | 0:af7247fcd74c | 20 | if(Volts.read()*100<=tensionMin) |
| arn_beauclair | 0:af7247fcd74c | 21 | Etat=1; |
| arn_beauclair | 0:af7247fcd74c | 22 | else{ |
| arn_beauclair | 0:af7247fcd74c | 23 | if(Ampere.read()*48>=commandeLimite) |
| arn_beauclair | 0:af7247fcd74c | 24 | Etat=3; |
| arn_beauclair | 0:af7247fcd74c | 25 | else |
| arn_beauclair | 0:af7247fcd74c | 26 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 27 | } |
| arn_beauclair | 0:af7247fcd74c | 28 | } |
| arn_beauclair | 0:af7247fcd74c | 29 | break; |
| arn_beauclair | 0:af7247fcd74c | 30 | // detection d'une batterie faible |
| arn_beauclair | 0:af7247fcd74c | 31 | case 1: |
| arn_beauclair | 0:af7247fcd74c | 32 | if(frein.read()==1) |
| arn_beauclair | 0:af7247fcd74c | 33 | Etat=6; |
| arn_beauclair | 0:af7247fcd74c | 34 | else{ |
| arn_beauclair | 0:af7247fcd74c | 35 | if(int(Volts.read()*100)>=(tensionMax)) |
| arn_beauclair | 0:af7247fcd74c | 36 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 37 | else |
| arn_beauclair | 0:af7247fcd74c | 38 | { |
| arn_beauclair | 0:af7247fcd74c | 39 | if((infini==0)&&(compteur_Demarreur>=(TemporisationDemarreur*10))) |
| arn_beauclair | 0:af7247fcd74c | 40 | Etat=2; |
| arn_beauclair | 0:af7247fcd74c | 41 | else |
| arn_beauclair | 0:af7247fcd74c | 42 | Etat=1; |
| arn_beauclair | 0:af7247fcd74c | 43 | } |
| arn_beauclair | 0:af7247fcd74c | 44 | } |
| arn_beauclair | 0:af7247fcd74c | 45 | break; |
| arn_beauclair | 0:af7247fcd74c | 46 | //compteur du demarreur finit |
| arn_beauclair | 0:af7247fcd74c | 47 | case 2: |
| arn_beauclair | 0:af7247fcd74c | 48 | if(frein.read()==1) |
| arn_beauclair | 0:af7247fcd74c | 49 | Etat=7; |
| arn_beauclair | 0:af7247fcd74c | 50 | else{ |
| arn_beauclair | 0:af7247fcd74c | 51 | if(int(Volts.read()*100)>=(tensionMax)) |
| arn_beauclair | 0:af7247fcd74c | 52 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 53 | else |
| arn_beauclair | 0:af7247fcd74c | 54 | Etat=2; |
| arn_beauclair | 0:af7247fcd74c | 55 | } |
| arn_beauclair | 0:af7247fcd74c | 56 | break; |
| arn_beauclair | 0:af7247fcd74c | 57 | //detection fort courant |
| arn_beauclair | 0:af7247fcd74c | 58 | case 3: |
| arn_beauclair | 0:af7247fcd74c | 59 | if(frein.read()==1) |
| arn_beauclair | 0:af7247fcd74c | 60 | Etat=6; |
| arn_beauclair | 0:af7247fcd74c | 61 | else{ |
| arn_beauclair | 0:af7247fcd74c | 62 | if(Ampere.read()*48>=commandeLimite) |
| arn_beauclair | 0:af7247fcd74c | 63 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 64 | else |
| arn_beauclair | 0:af7247fcd74c | 65 | { |
| arn_beauclair | 0:af7247fcd74c | 66 | if(compteur_Tempo>=(comptDem*10)) |
| arn_beauclair | 0:af7247fcd74c | 67 | Etat=4; |
| arn_beauclair | 0:af7247fcd74c | 68 | else |
| arn_beauclair | 0:af7247fcd74c | 69 | Etat=3; |
| arn_beauclair | 0:af7247fcd74c | 70 | } |
| arn_beauclair | 0:af7247fcd74c | 71 | } |
| arn_beauclair | 0:af7247fcd74c | 72 | break; |
| arn_beauclair | 0:af7247fcd74c | 73 | // temporisation lors du fort courant fini |
| arn_beauclair | 0:af7247fcd74c | 74 | case 4: |
| arn_beauclair | 0:af7247fcd74c | 75 | if(frein.read()==1) |
| arn_beauclair | 0:af7247fcd74c | 76 | Etat=6; |
| arn_beauclair | 0:af7247fcd74c | 77 | else{ |
| arn_beauclair | 0:af7247fcd74c | 78 | if(Ampere.read()*48>=commandeLimite) |
| arn_beauclair | 0:af7247fcd74c | 79 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 80 | else |
| arn_beauclair | 0:af7247fcd74c | 81 | { |
| arn_beauclair | 0:af7247fcd74c | 82 | if((infini==0)&&(compteur_Demarreur>=(TemporisationDemarreur*10))) |
| arn_beauclair | 0:af7247fcd74c | 83 | { |
| arn_beauclair | 0:af7247fcd74c | 84 | if(int(Volts.read()*100)<=(tensionMin)) |
| arn_beauclair | 0:af7247fcd74c | 85 | Etat=2; |
| arn_beauclair | 0:af7247fcd74c | 86 | else |
| arn_beauclair | 0:af7247fcd74c | 87 | Etat=5; |
| arn_beauclair | 0:af7247fcd74c | 88 | } |
| arn_beauclair | 0:af7247fcd74c | 89 | else |
| arn_beauclair | 0:af7247fcd74c | 90 | Etat=4; |
| arn_beauclair | 0:af7247fcd74c | 91 | } |
| arn_beauclair | 0:af7247fcd74c | 92 | } |
| arn_beauclair | 0:af7247fcd74c | 93 | break; |
| arn_beauclair | 0:af7247fcd74c | 94 | // fin du demarreur pour un fort courant |
| arn_beauclair | 0:af7247fcd74c | 95 | case 5: |
| arn_beauclair | 0:af7247fcd74c | 96 | if(frein.read()==1) |
| arn_beauclair | 0:af7247fcd74c | 97 | Etat=6; |
| arn_beauclair | 0:af7247fcd74c | 98 | else{ |
| arn_beauclair | 0:af7247fcd74c | 99 | if(Ampere.read()*48>=commandeLimite) |
| arn_beauclair | 0:af7247fcd74c | 100 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 101 | else |
| arn_beauclair | 0:af7247fcd74c | 102 | { |
| arn_beauclair | 0:af7247fcd74c | 103 | if(int(Volts.read()*100)<=(tensionMin)) |
| arn_beauclair | 0:af7247fcd74c | 104 | Etat=2; |
| arn_beauclair | 0:af7247fcd74c | 105 | else |
| arn_beauclair | 0:af7247fcd74c | 106 | Etat=5; |
| arn_beauclair | 0:af7247fcd74c | 107 | } |
| arn_beauclair | 0:af7247fcd74c | 108 | } |
| arn_beauclair | 0:af7247fcd74c | 109 | break; |
| arn_beauclair | 0:af7247fcd74c | 110 | // freinage |
| arn_beauclair | 0:af7247fcd74c | 111 | case 6 : |
| arn_beauclair | 0:af7247fcd74c | 112 | if(frein==0) |
| arn_beauclair | 0:af7247fcd74c | 113 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 114 | else |
| arn_beauclair | 0:af7247fcd74c | 115 | Etat=6; |
| arn_beauclair | 0:af7247fcd74c | 116 | break; |
| arn_beauclair | 0:af7247fcd74c | 117 | // freinage lors de la recharge de la batterie |
| arn_beauclair | 0:af7247fcd74c | 118 | case 7: |
| arn_beauclair | 0:af7247fcd74c | 119 | if(frein==0) |
| arn_beauclair | 0:af7247fcd74c | 120 | Etat=0; |
| arn_beauclair | 0:af7247fcd74c | 121 | else |
| arn_beauclair | 0:af7247fcd74c | 122 | Etat=7; |
| arn_beauclair | 0:af7247fcd74c | 123 | break; |
| arn_beauclair | 0:af7247fcd74c | 124 | } |
| arn_beauclair | 0:af7247fcd74c | 125 | } |
| arn_beauclair | 0:af7247fcd74c | 126 |