Julien Deschamps / Mbed 2 deprecated projetv1

Dependencies:   mbed

Committer:
jdeschamps
Date:
Mon May 04 14:40:43 2020 +0000
Revision:
5:0d73e455922a
Parent:
4:2054aa78f3fd
projetv1

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 5:0d73e455922a 34
dg81 0:b5c75bc6000e 35 void Interruption_timer() {
jdeschamps 2:53d8e05db3d9 36 if(sens==0)
jdeschamps 2:53d8e05db3d9 37 {
jdeschamps 2:53d8e05db3d9 38 pas++;
jdeschamps 2:53d8e05db3d9 39 compteur++;
jdeschamps 2:53d8e05db3d9 40 if(pas>8)pas=1;
jdeschamps 2:53d8e05db3d9 41 }
jdeschamps 2:53d8e05db3d9 42 if(sens==1)
jdeschamps 2:53d8e05db3d9 43 {
jdeschamps 2:53d8e05db3d9 44 pas--;
jdeschamps 2:53d8e05db3d9 45 compteur--;
jdeschamps 2:53d8e05db3d9 46 if(pas<1)pas=8;
jdeschamps 2:53d8e05db3d9 47 }
jdeschamps 2:53d8e05db3d9 48 if(compteur<=0){
jdeschamps 5:0d73e455922a 49 pwma=0;
jdeschamps 4:2054aa78f3fd 50 F=1;
jdeschamps 2:53d8e05db3d9 51 }
jdeschamps 2:53d8e05db3d9 52 switch (pas)
jdeschamps 2:53d8e05db3d9 53 {
jdeschamps 2:53d8e05db3d9 54 case 1:
jdeschamps 2:53d8e05db3d9 55 brka=0;
jdeschamps 2:53d8e05db3d9 56 dira=1;
jdeschamps 2:53d8e05db3d9 57 brkb=1;
jdeschamps 2:53d8e05db3d9 58 dirb=0;
jdeschamps 2:53d8e05db3d9 59 break;
jdeschamps 2:53d8e05db3d9 60 case 2:
jdeschamps 2:53d8e05db3d9 61 brka=0;
jdeschamps 2:53d8e05db3d9 62 dira=1;
jdeschamps 2:53d8e05db3d9 63 brkb=0;
jdeschamps 2:53d8e05db3d9 64 dirb=1;
jdeschamps 2:53d8e05db3d9 65 break;
jdeschamps 2:53d8e05db3d9 66 case 3:
jdeschamps 2:53d8e05db3d9 67 brka=1;
jdeschamps 2:53d8e05db3d9 68 dira=0;
jdeschamps 2:53d8e05db3d9 69 brkb=0;
jdeschamps 2:53d8e05db3d9 70 dirb=1;
jdeschamps 2:53d8e05db3d9 71 break;
jdeschamps 2:53d8e05db3d9 72 case 4:
jdeschamps 2:53d8e05db3d9 73 brka=0;
jdeschamps 2:53d8e05db3d9 74 dira=0;
jdeschamps 2:53d8e05db3d9 75 brkb=0;
jdeschamps 2:53d8e05db3d9 76 dirb=1;
jdeschamps 2:53d8e05db3d9 77 break;
jdeschamps 2:53d8e05db3d9 78 case 5:
jdeschamps 2:53d8e05db3d9 79 brka=0;
jdeschamps 2:53d8e05db3d9 80 dira=0;
jdeschamps 2:53d8e05db3d9 81 brkb=1;
jdeschamps 2:53d8e05db3d9 82 dirb=0;
jdeschamps 2:53d8e05db3d9 83 break;
jdeschamps 2:53d8e05db3d9 84 case 6:
jdeschamps 2:53d8e05db3d9 85 brka=0;
jdeschamps 2:53d8e05db3d9 86 dira=0;
jdeschamps 2:53d8e05db3d9 87 brkb=0;
jdeschamps 2:53d8e05db3d9 88 dirb=0;
jdeschamps 2:53d8e05db3d9 89 break;
jdeschamps 2:53d8e05db3d9 90 case 7:
jdeschamps 2:53d8e05db3d9 91 brka=1;
jdeschamps 2:53d8e05db3d9 92 dira=0;
jdeschamps 2:53d8e05db3d9 93 brkb=0;
jdeschamps 2:53d8e05db3d9 94 dirb=0;
jdeschamps 2:53d8e05db3d9 95 break;
jdeschamps 2:53d8e05db3d9 96 case 8:
jdeschamps 2:53d8e05db3d9 97 brka=0;
jdeschamps 2:53d8e05db3d9 98 dira=1;
jdeschamps 2:53d8e05db3d9 99 brkb=0;
jdeschamps 2:53d8e05db3d9 100 dirb=0;
jdeschamps 2:53d8e05db3d9 101 break;
jdeschamps 2:53d8e05db3d9 102 default:
jdeschamps 2:53d8e05db3d9 103 break;
jdeschamps 2:53d8e05db3d9 104 }
dg81 0:b5c75bc6000e 105 }
dg81 0:b5c75bc6000e 106
dg81 0:b5c75bc6000e 107 int main(void)
dg81 0:b5c75bc6000e 108 {
dg81 0:b5c75bc6000e 109 mon_IT.attach(&Interruption_timer,0.5); // l'interruption est associée au programme Interruption_timer et s'exécute toutes les 0.5s
dg81 0:b5c75bc6000e 110 // pour stopper mon_IT.detach();
jdeschamps 5:0d73e455922a 111 sw3.rise(&Interruption_KBI1);
jdeschamps 5:0d73e455922a 112 sw3.rise(&Interruption_KBI2);
dg81 0:b5c75bc6000e 113 while(1)
jdeschamps 2:53d8e05db3d9 114 {
jdeschamps 2:53d8e05db3d9 115 for(;;){
jdeschamps 5:0d73e455922a 116
jdeschamps 5:0d73e455922a 117 if (pc.readable()){
jdeschamps 5:0d73e455922a 118 err=pc.scanf("%s",message);
jdeschamps 5:0d73e455922a 119
jdeschamps 5:0d73e455922a 120 if(strcmp(message,"monte_v1")==0)
jdeschamps 2:53d8e05db3d9 121 {
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 2:53d8e05db3d9 128 sens=1; // marche arriere
jdeschamps 2:53d8e05db3d9 129 pwma=1;
jdeschamps 5:0d73e455922a 130 }
jdeschamps 5:0d73e455922a 131
jdeschamps 5:0d73e455922a 132 else if(strcmp(message,"stop")==0)
jdeschamps 5:0d73e455922a 133 {
jdeschamps 5:0d73e455922a 134 pwma=0;
jdeschamps 5:0d73e455922a 135
jdeschamps 5:0d73e455922a 136 }
jdeschamps 5:0d73e455922a 137
jdeschamps 5:0d73e455922a 138 if (F==1)
jdeschamps 5:0d73e455922a 139 {
jdeschamps 5:0d73e455922a 140 printf("Fin de course");
jdeschamps 5:0d73e455922a 141 F=0;
jdeschamps 5:0d73e455922a 142 }
jdeschamps 3:fb15a9d24ccf 143 }
dg81 0:b5c75bc6000e 144 }
jdeschamps 5:0d73e455922a 145 }
jdeschamps 5:0d73e455922a 146 }