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.
main.cpp@0:4f6abed7fb04, 2022-05-23 (annotated)
- Committer:
- benpuiss
- Date:
- Mon May 23 07:06:59 2022 +0000
- Revision:
- 0:4f6abed7fb04
c
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| benpuiss | 0:4f6abed7fb04 | 1 | // SAE1-S2 programme de départ testant uniquement la carte micro |
| benpuiss | 0:4f6abed7fb04 | 2 | |
| benpuiss | 0:4f6abed7fb04 | 3 | #include "mbed.h" // |
| benpuiss | 0:4f6abed7fb04 | 4 | //****************** déclarations de toutes les broches !!*************** |
| benpuiss | 0:4f6abed7fb04 | 5 | Serial pc(SERIAL_TX, SERIAL_RX); // PORT SERIE vers driver usb !! |
| benpuiss | 0:4f6abed7fb04 | 6 | AnalogIn inVs(A0) ; // entrée ana pour mesurer le Vs de la carte capteur |
| benpuiss | 0:4f6abed7fb04 | 7 | AnalogOut outVr(A4); // sortie ana pour la calibration du capteur |
| benpuiss | 0:4f6abed7fb04 | 8 | AnalogIn P1(A1) ; AnalogIn P0(A3) ; // entrée ana pour le code du capteur |
| benpuiss | 0:4f6abed7fb04 | 9 | AnalogIn inVp(A2) ; // entrée ana pour le potentiometre de la carte |
| benpuiss | 0:4f6abed7fb04 | 10 | DigitalOut plus(D1) ; // sortie logique alim du pull up interupteur 2 pins |
| benpuiss | 0:4f6abed7fb04 | 11 | DigitalIn inter(D2); // entrée logique mesure inter ( 1L à vide) |
| benpuiss | 0:4f6abed7fb04 | 12 | DigitalOut LED(D9) ; // sortie logique pour la LED de la carte ( 1 allume) |
| benpuiss | 0:4f6abed7fb04 | 13 | |
| benpuiss | 0:4f6abed7fb04 | 14 | //****variables *********************************************************** |
| benpuiss | 0:4f6abed7fb04 | 15 | int recpt = 0 ; // tampon d'arrivée d'un octet de la liaison série |
| benpuiss | 0:4f6abed7fb04 | 16 | float Vs = 0.5 ; // variable ou lire Vs de 0 à 1 pour 0 à 3.3V vrai |
| benpuiss | 0:4f6abed7fb04 | 17 | float Vp = 0.5 ; // variable pour lire Vp (potentiomètre)0 à 1 pour 0 à 3.3V |
| benpuiss | 0:4f6abed7fb04 | 18 | float Vr = 0.3681 ; // variable de sortie Vr 0,3681 > Vk = 1.244 (20°C +-10mv) |
| benpuiss | 0:4f6abed7fb04 | 19 | float P = 0.1 ; // tampon de lecture des broches P0 et P1 |
| benpuiss | 0:4f6abed7fb04 | 20 | int out = 0 ; // variable de sortie à serialiser en duj10 |
| benpuiss | 0:4f6abed7fb04 | 21 | int etape = 0 ; // permet au programme de savoir ou il en est |
| benpuiss | 0:4f6abed7fb04 | 22 | int INP0= 0; |
| benpuiss | 0:4f6abed7fb04 | 23 | int INP1= 0; |
| benpuiss | 0:4f6abed7fb04 | 24 | |
| benpuiss | 0:4f6abed7fb04 | 25 | //******** préparation des sous programmes |
| benpuiss | 0:4f6abed7fb04 | 26 | #include "sousprog.h" |
| benpuiss | 0:4f6abed7fb04 | 27 | #include "etape0.h" |
| benpuiss | 0:4f6abed7fb04 | 28 | #include "etape1.h" |
| benpuiss | 0:4f6abed7fb04 | 29 | |
| benpuiss | 0:4f6abed7fb04 | 30 | void interrupt(); // obligatoire ici : pour la reception de liaison serie |
| benpuiss | 0:4f6abed7fb04 | 31 | |
| benpuiss | 0:4f6abed7fb04 | 32 | int main() // boucle principale |
| benpuiss | 0:4f6abed7fb04 | 33 | { |
| benpuiss | 0:4f6abed7fb04 | 34 | // tester broche de l'inter ( entrée logique D2 nommée inter ou K) |
| benpuiss | 0:4f6abed7fb04 | 35 | /*if( inter == 1) // test inter sur carte MicroC |
| benpuiss | 0:4f6abed7fb04 | 36 | { pc.putc('w'); } |
| benpuiss | 0:4f6abed7fb04 | 37 | if( inter == 0) // test inter sur carte MicroC |
| benpuiss | 0:4f6abed7fb04 | 38 | { pc.putc('v'); } */ |
| benpuiss | 0:4f6abed7fb04 | 39 | |
| benpuiss | 0:4f6abed7fb04 | 40 | // mesurer la tension analogique sur P0 |
| benpuiss | 0:4f6abed7fb04 | 41 | |
| benpuiss | 0:4f6abed7fb04 | 42 | |
| benpuiss | 0:4f6abed7fb04 | 43 | |
| benpuiss | 0:4f6abed7fb04 | 44 | init(); // prépare certianes fonctions au debut |
| benpuiss | 0:4f6abed7fb04 | 45 | |
| benpuiss | 0:4f6abed7fb04 | 46 | while(1)// boucle sans fin du programme |
| benpuiss | 0:4f6abed7fb04 | 47 | { |
| benpuiss | 0:4f6abed7fb04 | 48 | P = P0.read(); // regarde la tension sur P0 pour savoir si 0 ou 1L |
| benpuiss | 0:4f6abed7fb04 | 49 | if ( P > 0.51 ) |
| benpuiss | 0:4f6abed7fb04 | 50 | {pc.putc('s'); INP0 = 1;} |
| benpuiss | 0:4f6abed7fb04 | 51 | if ( P < 0.49 ) |
| benpuiss | 0:4f6abed7fb04 | 52 | {pc.putc('r'); INP0 = 0;} |
| benpuiss | 0:4f6abed7fb04 | 53 | P = P1.read(); |
| benpuiss | 0:4f6abed7fb04 | 54 | if ( P > 0.51 ) |
| benpuiss | 0:4f6abed7fb04 | 55 | {pc.putc('u'); INP1 = 1;} |
| benpuiss | 0:4f6abed7fb04 | 56 | if ( P < 0.49 ) |
| benpuiss | 0:4f6abed7fb04 | 57 | {pc.putc('t'); INP1 = 0;} |
| benpuiss | 0:4f6abed7fb04 | 58 | etape = inter ; |
| benpuiss | 0:4f6abed7fb04 | 59 | if ( etape == 0 ) { pc.putc('v'); } |
| benpuiss | 0:4f6abed7fb04 | 60 | if ( etape == 1 ) { pc.putc('w'); } |
| benpuiss | 0:4f6abed7fb04 | 61 | |
| benpuiss | 0:4f6abed7fb04 | 62 | if ( etape == 0 ) etape0() ; // au debut etape = 0 |
| benpuiss | 0:4f6abed7fb04 | 63 | if ( etape == 1 ){ |
| benpuiss | 0:4f6abed7fb04 | 64 | if ((INP0==1) && (INP1==1)) etape1T(); |
| benpuiss | 0:4f6abed7fb04 | 65 | if ((INP0==0) && (INP1==1)) etape1F(); |
| benpuiss | 0:4f6abed7fb04 | 66 | if ((INP0==1) && (INP1==0)) etape1L(); |
| benpuiss | 0:4f6abed7fb04 | 67 | if ((INP0==0) && (INP1==0)) pc.putc('h'); |
| benpuiss | 0:4f6abed7fb04 | 68 | } |
| benpuiss | 0:4f6abed7fb04 | 69 | } |
| benpuiss | 0:4f6abed7fb04 | 70 | } |
| benpuiss | 0:4f6abed7fb04 | 71 | |
| benpuiss | 0:4f6abed7fb04 | 72 | |
| benpuiss | 0:4f6abed7fb04 | 73 |