projet neotim mpp / Mbed 2 deprecated projetv2

Dependencies:   mbed

Committer:
jdeschamps
Date:
Mon May 04 15:21:41 2020 +0000
Revision:
8:bef8456b1b31
Parent:
7:f9a7d4c88daa
projetv2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dg81 0:b5c75bc6000e 1 #include "mbed.h"
jdeschamps 5:0d73e455922a 2 #include "string.h"
jdeschamps 1:8e1033a40696 3 Serial pc(USBTX, USBRX,9600); // tx, rx sur les broches associées au bus USB
dg81 0:b5c75bc6000e 4 DigitalOut led1(LED1);
jdeschamps 1:8e1033a40696 5 DigitalOut brka (PTC4);
jdeschamps 1:8e1033a40696 6 DigitalOut brkb (PTC12);
jdeschamps 1:8e1033a40696 7 DigitalOut dira (PTD3);
jdeschamps 1:8e1033a40696 8 DigitalOut dirb (PTD1);
jdeschamps 2:53d8e05db3d9 9 DigitalOut pwma (PTD2);
jdeschamps 5:0d73e455922a 10 InterruptIn sw3 (PTA4);
jdeschamps 5:0d73e455922a 11 InterruptIn sw2 (PTC6);
jdeschamps 1:8e1033a40696 12
jdeschamps 2:53d8e05db3d9 13 char pas=1;
jdeschamps 2:53d8e05db3d9 14 bool sens=0;
jdeschamps 4:2054aa78f3fd 15 bool F;
jdeschamps 2:53d8e05db3d9 16 unsigned int compteur=0;
jdeschamps 2:53d8e05db3d9 17 char message[30];
jdeschamps 5:0d73e455922a 18 int err;
jdeschamps 5:0d73e455922a 19 int i=0;
jdeschamps 5:0d73e455922a 20 int o=0;
dg81 0:b5c75bc6000e 21 Ticker mon_IT; // on associe l'interface Timeout à l'objet mon_IT
dg81 0:b5c75bc6000e 22
jdeschamps 5:0d73e455922a 23 void Interruption_KBI1() {
jdeschamps 5:0d73e455922a 24 i++;
jdeschamps 5:0d73e455922a 25 printf("La valeur de i est de : %d \n", i);
jdeschamps 5:0d73e455922a 26 pwma=0;
jdeschamps 5:0d73e455922a 27 }
jdeschamps 5:0d73e455922a 28
jdeschamps 5:0d73e455922a 29 void Interruption_KBI2() {
jdeschamps 5:0d73e455922a 30 o++;
jdeschamps 5:0d73e455922a 31 printf("La valeur de o est de : %d \n", o);
jdeschamps 5:0d73e455922a 32 pwma=0;
jdeschamps 5:0d73e455922a 33 printf("Le nombre de pas est de : %d \n", compteur);
jdeschamps 7:f9a7d4c88daa 34 }
jdeschamps 7:f9a7d4c88daa 35
jdeschamps 8:bef8456b1b31 36 void Interruption_Period() {
jdeschamps 6:9194379d2fdc 37 if(sens==0)
jdeschamps 2:53d8e05db3d9 38 {
jdeschamps 2:53d8e05db3d9 39 pas++;
jdeschamps 2:53d8e05db3d9 40 compteur++;
jdeschamps 2:53d8e05db3d9 41 if(pas>8)pas=1;
jdeschamps 2:53d8e05db3d9 42 }
jdeschamps 2:53d8e05db3d9 43 if(sens==1)
jdeschamps 2:53d8e05db3d9 44 {
jdeschamps 2:53d8e05db3d9 45 pas--;
jdeschamps 2:53d8e05db3d9 46 compteur--;
jdeschamps 2:53d8e05db3d9 47 if(pas<1)pas=8;
jdeschamps 2:53d8e05db3d9 48 }
jdeschamps 2:53d8e05db3d9 49 if(compteur<=0){
jdeschamps 5:0d73e455922a 50 pwma=0;
jdeschamps 4:2054aa78f3fd 51 F=1;
jdeschamps 2:53d8e05db3d9 52 }
jdeschamps 2:53d8e05db3d9 53 switch (pas)
jdeschamps 2:53d8e05db3d9 54 {
jdeschamps 2:53d8e05db3d9 55 case 1:
jdeschamps 2:53d8e05db3d9 56 brka=0;
jdeschamps 2:53d8e05db3d9 57 dira=1;
jdeschamps 2:53d8e05db3d9 58 brkb=1;
jdeschamps 2:53d8e05db3d9 59 dirb=0;
jdeschamps 2:53d8e05db3d9 60 break;
jdeschamps 2:53d8e05db3d9 61 case 2:
jdeschamps 2:53d8e05db3d9 62 brka=0;
jdeschamps 2:53d8e05db3d9 63 dira=1;
jdeschamps 2:53d8e05db3d9 64 brkb=0;
jdeschamps 2:53d8e05db3d9 65 dirb=1;
jdeschamps 2:53d8e05db3d9 66 break;
jdeschamps 2:53d8e05db3d9 67 case 3:
jdeschamps 2:53d8e05db3d9 68 brka=1;
jdeschamps 2:53d8e05db3d9 69 dira=0;
jdeschamps 2:53d8e05db3d9 70 brkb=0;
jdeschamps 2:53d8e05db3d9 71 dirb=1;
jdeschamps 2:53d8e05db3d9 72 break;
jdeschamps 2:53d8e05db3d9 73 case 4:
jdeschamps 2:53d8e05db3d9 74 brka=0;
jdeschamps 2:53d8e05db3d9 75 dira=0;
jdeschamps 2:53d8e05db3d9 76 brkb=0;
jdeschamps 2:53d8e05db3d9 77 dirb=1;
jdeschamps 2:53d8e05db3d9 78 break;
jdeschamps 2:53d8e05db3d9 79 case 5:
jdeschamps 2:53d8e05db3d9 80 brka=0;
jdeschamps 2:53d8e05db3d9 81 dira=0;
jdeschamps 2:53d8e05db3d9 82 brkb=1;
jdeschamps 2:53d8e05db3d9 83 dirb=0;
jdeschamps 2:53d8e05db3d9 84 break;
jdeschamps 2:53d8e05db3d9 85 case 6:
jdeschamps 2:53d8e05db3d9 86 brka=0;
jdeschamps 2:53d8e05db3d9 87 dira=0;
jdeschamps 2:53d8e05db3d9 88 brkb=0;
jdeschamps 2:53d8e05db3d9 89 dirb=0;
jdeschamps 2:53d8e05db3d9 90 break;
jdeschamps 2:53d8e05db3d9 91 case 7:
jdeschamps 2:53d8e05db3d9 92 brka=1;
jdeschamps 2:53d8e05db3d9 93 dira=0;
jdeschamps 2:53d8e05db3d9 94 brkb=0;
jdeschamps 2:53d8e05db3d9 95 dirb=0;
jdeschamps 2:53d8e05db3d9 96 break;
jdeschamps 2:53d8e05db3d9 97 case 8:
jdeschamps 2:53d8e05db3d9 98 brka=0;
jdeschamps 2:53d8e05db3d9 99 dira=1;
jdeschamps 2:53d8e05db3d9 100 brkb=0;
jdeschamps 2:53d8e05db3d9 101 dirb=0;
jdeschamps 2:53d8e05db3d9 102 break;
jdeschamps 2:53d8e05db3d9 103 default:
jdeschamps 2:53d8e05db3d9 104 break;
jdeschamps 2:53d8e05db3d9 105 }
dg81 0:b5c75bc6000e 106 }
dg81 0:b5c75bc6000e 107
dg81 0:b5c75bc6000e 108 int main(void)
dg81 0:b5c75bc6000e 109 {
jdeschamps 5:0d73e455922a 110 sw3.rise(&Interruption_KBI1);
jdeschamps 7:f9a7d4c88daa 111 sw2.rise(&Interruption_KBI2);
dg81 0:b5c75bc6000e 112 while(1)
jdeschamps 2:53d8e05db3d9 113 {
jdeschamps 2:53d8e05db3d9 114 for(;;){
jdeschamps 5:0d73e455922a 115
jdeschamps 5:0d73e455922a 116 if (pc.readable()){
jdeschamps 5:0d73e455922a 117 err=pc.scanf("%s",message);
jdeschamps 5:0d73e455922a 118
jdeschamps 5:0d73e455922a 119 if(strcmp(message,"monte_v1")==0)
jdeschamps 2:53d8e05db3d9 120 {
jdeschamps 8:bef8456b1b31 121 mon_IT.attach(&Interruption_Period,0.5);
jdeschamps 2:53d8e05db3d9 122 sens=0; // marche avant
jdeschamps 2:53d8e05db3d9 123 pwma=1;
jdeschamps 2:53d8e05db3d9 124 }
jdeschamps 5:0d73e455922a 125
jdeschamps 2:53d8e05db3d9 126 else if(strcmp(message,"descend_v1")==0)
jdeschamps 2:53d8e05db3d9 127 {
jdeschamps 8:bef8456b1b31 128 mon_IT.attach(&Interruption_Period,0.5);
jdeschamps 8:bef8456b1b31 129 sens=1; // marche arriere
jdeschamps 8:bef8456b1b31 130 pwma=1;
jdeschamps 8:bef8456b1b31 131 }
jdeschamps 8:bef8456b1b31 132
jdeschamps 8:bef8456b1b31 133 else if(strcmp(message,"monte_v2")==0)
jdeschamps 8:bef8456b1b31 134 {
jdeschamps 8:bef8456b1b31 135 mon_IT.attach(&Interruption_Period,0.1);
jdeschamps 8:bef8456b1b31 136 sens=0; // marche avant
jdeschamps 8:bef8456b1b31 137 pwma=1;
jdeschamps 8:bef8456b1b31 138 }
jdeschamps 8:bef8456b1b31 139
jdeschamps 8:bef8456b1b31 140 else if(strcmp(message,"descend_v2")==0)
jdeschamps 8:bef8456b1b31 141 {
jdeschamps 8:bef8456b1b31 142 mon_IT.attach(&Interruption_Period,0.1);
jdeschamps 8:bef8456b1b31 143 sens=1; // marche arriere
jdeschamps 8:bef8456b1b31 144 pwma=1;
jdeschamps 8:bef8456b1b31 145 }
jdeschamps 8:bef8456b1b31 146
jdeschamps 8:bef8456b1b31 147 else if(strcmp(message,"monte_v3")==0)
jdeschamps 8:bef8456b1b31 148 {
jdeschamps 8:bef8456b1b31 149 mon_IT.attach(&Interruption_Period,0.05);
jdeschamps 8:bef8456b1b31 150 sens=0; // marche avant
jdeschamps 8:bef8456b1b31 151 pwma=1;
jdeschamps 8:bef8456b1b31 152 }
jdeschamps 8:bef8456b1b31 153
jdeschamps 8:bef8456b1b31 154 else if(strcmp(message,"descend_v3")==0)
jdeschamps 8:bef8456b1b31 155 {
jdeschamps 8:bef8456b1b31 156 mon_IT.attach(&Interruption_Period,0.05);
jdeschamps 2:53d8e05db3d9 157 sens=1; // marche arriere
jdeschamps 2:53d8e05db3d9 158 pwma=1;
jdeschamps 5:0d73e455922a 159 }
jdeschamps 5:0d73e455922a 160
jdeschamps 5:0d73e455922a 161 else if(strcmp(message,"stop")==0)
jdeschamps 5:0d73e455922a 162 {
jdeschamps 5:0d73e455922a 163 pwma=0;
jdeschamps 5:0d73e455922a 164
jdeschamps 5:0d73e455922a 165 }
jdeschamps 5:0d73e455922a 166
jdeschamps 5:0d73e455922a 167 if (F==1)
jdeschamps 5:0d73e455922a 168 {
jdeschamps 5:0d73e455922a 169 printf("Fin de course");
jdeschamps 5:0d73e455922a 170 F=0;
jdeschamps 5:0d73e455922a 171 }
jdeschamps 3:fb15a9d24ccf 172 }
dg81 0:b5c75bc6000e 173 }
jdeschamps 5:0d73e455922a 174 }
jdeschamps 5:0d73e455922a 175 }