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.
Dependencies: TSI SliderPartition mbed
Fork of TP7_IUT_NICE by
Exo5.cpp@6:1e3f8f15978b, 2015-01-21 (annotated)
- Committer:
- Ridaz
- Date:
- Wed Jan 21 09:35:57 2015 +0000
- Revision:
- 6:1e3f8f15978b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ridaz | 6:1e3f8f15978b | 1 | #define Exo2 |
Ridaz | 6:1e3f8f15978b | 2 | #ifdef Exo2 |
Ridaz | 6:1e3f8f15978b | 3 | |
Ridaz | 6:1e3f8f15978b | 4 | #include "mbed.h" |
Ridaz | 6:1e3f8f15978b | 5 | #include "info1.h" |
Ridaz | 6:1e3f8f15978b | 6 | #include "TSISensor.h" |
Ridaz | 6:1e3f8f15978b | 7 | |
Ridaz | 6:1e3f8f15978b | 8 | #define LOW 0 |
Ridaz | 6:1e3f8f15978b | 9 | #define HIGH 1 |
Ridaz | 6:1e3f8f15978b | 10 | |
Ridaz | 6:1e3f8f15978b | 11 | //pour le debug (printf & scanf) |
Ridaz | 6:1e3f8f15978b | 12 | Serial pc(USBTX, USBRX); |
Ridaz | 6:1e3f8f15978b | 13 | |
Ridaz | 6:1e3f8f15978b | 14 | int main(void) |
Ridaz | 6:1e3f8f15978b | 15 | { |
Ridaz | 6:1e3f8f15978b | 16 | //Declaration des variables : |
Ridaz | 6:1e3f8f15978b | 17 | int etat; |
Ridaz | 6:1e3f8f15978b | 18 | int bp,bp1,bp2,bp3,bp4; |
Ridaz | 6:1e3f8f15978b | 19 | PwmOut led_BLUE(LED_BLUE); |
Ridaz | 6:1e3f8f15978b | 20 | PwmOut led_GREEN(LED_GREEN); |
Ridaz | 6:1e3f8f15978b | 21 | PwmOut led_RED(LED_RED); |
Ridaz | 6:1e3f8f15978b | 22 | TSISensor tsi2; |
Ridaz | 6:1e3f8f15978b | 23 | //Initialisation |
Ridaz | 6:1e3f8f15978b | 24 | etat=0; |
Ridaz | 6:1e3f8f15978b | 25 | led_RED.period_us(100); |
Ridaz | 6:1e3f8f15978b | 26 | led_BLUE.period_us(100); |
Ridaz | 6:1e3f8f15978b | 27 | led_GREEN.period_us(100); |
Ridaz | 6:1e3f8f15978b | 28 | |
Ridaz | 6:1e3f8f15978b | 29 | //Boucle infinie |
Ridaz | 6:1e3f8f15978b | 30 | while (1) { |
Ridaz | 6:1e3f8f15978b | 31 | //Lecture du slider (bp=1 si doigt sur slider, 0 sinon) |
Ridaz | 6:1e3f8f15978b | 32 | appui_num(&bp); |
Ridaz | 6:1e3f8f15978b | 33 | appui_ana_2(&bp1,&bp2,&bp3,&bp4); |
Ridaz | 6:1e3f8f15978b | 34 | /* |
Ridaz | 6:1e3f8f15978b | 35 | Quatre zones sont définies : |
Ridaz | 6:1e3f8f15978b | 36 | 0 à 0.15 : Simulation du retrait du jack |
Ridaz | 6:1e3f8f15978b | 37 | 0.15 à 0.5 : Virage à gauche |
Ridaz | 6:1e3f8f15978b | 38 | 0.5 à 0.95 : Virage à droite |
Ridaz | 6:1e3f8f15978b | 39 | 0.95 à 1 : Fin de course |
Ridaz | 6:1e3f8f15978b | 40 | */ |
Ridaz | 6:1e3f8f15978b | 41 | |
Ridaz | 6:1e3f8f15978b | 42 | |
Ridaz | 6:1e3f8f15978b | 43 | //Determination de l'etat en fonction de BP |
Ridaz | 6:1e3f8f15978b | 44 | switch(etat) { |
Ridaz | 6:1e3f8f15978b | 45 | case 0 : |
Ridaz | 6:1e3f8f15978b | 46 | if (bp1 == 1) |
Ridaz | 6:1e3f8f15978b | 47 | etat = 1; |
Ridaz | 6:1e3f8f15978b | 48 | break; |
Ridaz | 6:1e3f8f15978b | 49 | case 1 : |
Ridaz | 6:1e3f8f15978b | 50 | if (bp4 == 1) |
Ridaz | 6:1e3f8f15978b | 51 | etat = 0; |
Ridaz | 6:1e3f8f15978b | 52 | else |
Ridaz | 6:1e3f8f15978b | 53 | etat = 2; |
Ridaz | 6:1e3f8f15978b | 54 | break; |
Ridaz | 6:1e3f8f15978b | 55 | case 2 : |
Ridaz | 6:1e3f8f15978b | 56 | if (bp4 == 1) |
Ridaz | 6:1e3f8f15978b | 57 | etat = 0; |
Ridaz | 6:1e3f8f15978b | 58 | else if (bp2 == 0 && bp3 == 0) |
Ridaz | 6:1e3f8f15978b | 59 | etat = 2; |
Ridaz | 6:1e3f8f15978b | 60 | else if (bp2 == 1 && bp3 == 0) |
Ridaz | 6:1e3f8f15978b | 61 | etat = 3; |
Ridaz | 6:1e3f8f15978b | 62 | else if (bp2 == 0 && bp3 == 1) |
Ridaz | 6:1e3f8f15978b | 63 | etat = 4; |
Ridaz | 6:1e3f8f15978b | 64 | |
Ridaz | 6:1e3f8f15978b | 65 | break; |
Ridaz | 6:1e3f8f15978b | 66 | } |
Ridaz | 6:1e3f8f15978b | 67 | printf("Etat = %d ; bp1 = %d ; bp2 = %d\n",etat,bp1,bp2); |
Ridaz | 6:1e3f8f15978b | 68 | |
Ridaz | 6:1e3f8f15978b | 69 | //Ecriture sur les sorties en fct de l'etat |
Ridaz | 6:1e3f8f15978b | 70 | switch(etat) { |
Ridaz | 6:1e3f8f15978b | 71 | case 0 : |
Ridaz | 6:1e3f8f15978b | 72 | led_RED = 1; |
Ridaz | 6:1e3f8f15978b | 73 | led_BLUE = 1; |
Ridaz | 6:1e3f8f15978b | 74 | led_GREEN = 1; |
Ridaz | 6:1e3f8f15978b | 75 | break; |
Ridaz | 6:1e3f8f15978b | 76 | case 1 : |
Ridaz | 6:1e3f8f15978b | 77 | led_RED = 1; |
Ridaz | 6:1e3f8f15978b | 78 | led_BLUE = 1; |
Ridaz | 6:1e3f8f15978b | 79 | led_GREEN = 0; |
Ridaz | 6:1e3f8f15978b | 80 | break; |
Ridaz | 6:1e3f8f15978b | 81 | case 2 : |
Ridaz | 6:1e3f8f15978b | 82 | led_RED = 1; |
Ridaz | 6:1e3f8f15978b | 83 | led_BLUE = 1; |
Ridaz | 6:1e3f8f15978b | 84 | led_GREEN = 0; |
Ridaz | 6:1e3f8f15978b | 85 | break; |
Ridaz | 6:1e3f8f15978b | 86 | case 3 : |
Ridaz | 6:1e3f8f15978b | 87 | led_RED = 0 + (tsi2.readPercentage()-0.15)*2.8; |
Ridaz | 6:1e3f8f15978b | 88 | /* |
Ridaz | 6:1e3f8f15978b | 89 | A 15% du slider la LED rouge est à 100% de son intensité; |
Ridaz | 6:1e3f8f15978b | 90 | On soustrait 0.15 car on veut une intensité de 100% a 15% du slider; |
Ridaz | 6:1e3f8f15978b | 91 | L'intensité diminue progréssivement avec un rapport de 2.8; |
Ridaz | 6:1e3f8f15978b | 92 | A 50% du slider l'intensité de la LED est à 0; |
Ridaz | 6:1e3f8f15978b | 93 | */ |
Ridaz | 6:1e3f8f15978b | 94 | led_BLUE = 1; |
Ridaz | 6:1e3f8f15978b | 95 | led_GREEN = 1 - (tsi2.readPercentage()-0.15)*2.8;//Idem que la LED rouge sauf que l'intensité augmente; |
Ridaz | 6:1e3f8f15978b | 96 | etat = 2; |
Ridaz | 6:1e3f8f15978b | 97 | break; |
Ridaz | 6:1e3f8f15978b | 98 | case 4 : |
Ridaz | 6:1e3f8f15978b | 99 | /* |
Ridaz | 6:1e3f8f15978b | 100 | Même principe sauf que le repport est de 2.2; |
Ridaz | 6:1e3f8f15978b | 101 | */ |
Ridaz | 6:1e3f8f15978b | 102 | led_RED = 1; |
Ridaz | 6:1e3f8f15978b | 103 | led_BLUE = 1 - (tsi2.readPercentage()-0.5)*2.2; |
Ridaz | 6:1e3f8f15978b | 104 | led_GREEN = (tsi2.readPercentage()-0.5)*2.2; |
Ridaz | 6:1e3f8f15978b | 105 | etat = 2; |
Ridaz | 6:1e3f8f15978b | 106 | break; |
Ridaz | 6:1e3f8f15978b | 107 | |
Ridaz | 6:1e3f8f15978b | 108 | |
Ridaz | 6:1e3f8f15978b | 109 | } |
Ridaz | 6:1e3f8f15978b | 110 | |
Ridaz | 6:1e3f8f15978b | 111 | wait_ms(10); |
Ridaz | 6:1e3f8f15978b | 112 | } |
Ridaz | 6:1e3f8f15978b | 113 | } |
Ridaz | 6:1e3f8f15978b | 114 | #endif |