Test

Dependencies:   mbed DRV8825

Committer:
g0dd4
Date:
Wed Oct 28 23:05:19 2020 +0000
Revision:
26:4670968fbc63
Parent:
22:f891c2bce091
Ajout OFFSET;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nanaud 22:f891c2bce091 1 /* Équipe : Ares ENSEA
Nanaud 22:f891c2bce091 2 * Coupe de France de robotique 2020
Nanaud 22:f891c2bce091 3 */
Nanaud 22:f891c2bce091 4
Nanaud 22:f891c2bce091 5
Nanaud 22:f891c2bce091 6 /* #include */
Nanaud 0:dc036b67c87c 7 #include "pins.h"
Nanaud 0:dc036b67c87c 8
Nanaud 6:ea6b30c4bb01 9
Nanaud 22:f891c2bce091 10 /* Variables globales */
Nanaud 22:f891c2bce091 11 Ticker TickerGlobal; // Comptage du temps écoulé
Nanaud 22:f891c2bce091 12 int cptGlobal = 0;
Nanaud 22:f891c2bce091 13 bool match = 0; // Match == 1 => Le match est en cours
Nanaud 20:7d206773f39e 14
Nanaud 22:f891c2bce091 15
Nanaud 22:f891c2bce091 16 /* Prototypes */
Nanaud 22:f891c2bce091 17 void btnBlueIT();
Nanaud 22:f891c2bce091 18 void globalCounterIT();
Nanaud 19:c419033c0967 19
Nanaud 20:7d206773f39e 20
Nanaud 4:ad9b7355332e 21 int main()
Nanaud 4:ad9b7355332e 22 {
Nanaud 22:f891c2bce091 23 pc.printf("\r\nAresCDF2020\r\n");
Nanaud 22:f891c2bce091 24 bt.printf("\r\nAresCDF2020\r\n");
Nanaud 22:f891c2bce091 25
Nanaud 22:f891c2bce091 26 /* Initialisation des drivers */
Nanaud 22:f891c2bce091 27 drv_init();
Nanaud 20:7d206773f39e 28
Nanaud 22:f891c2bce091 29 /* Initialisation des codeurs */
Nanaud 22:f891c2bce091 30 cdgA.rise(&cdgaRise);
Nanaud 22:f891c2bce091 31 cddA.rise(&cddaRise);
Nanaud 22:f891c2bce091 32 cdgA.mode(PullUp);
Nanaud 22:f891c2bce091 33 cddA.mode(PullUp);
Nanaud 6:ea6b30c4bb01 34
Nanaud 22:f891c2bce091 35 /* Initialisation des broches */
Nanaud 22:f891c2bce091 36 Tirette.mode(PullDown);
Nanaud 22:f891c2bce091 37
Nanaud 22:f891c2bce091 38 /* Initialisation des pavillons */
Nanaud 22:f891c2bce091 39 FlagGOTO(90);
Nanaud 6:ea6b30c4bb01 40
Nanaud 22:f891c2bce091 41 /* Timers & tickers */
Nanaud 22:f891c2bce091 42 TickerGlobal.attach(&globalCounterIT, 1.0);
Nanaud 22:f891c2bce091 43 TimUS.start();
Nanaud 4:ad9b7355332e 44
Nanaud 22:f891c2bce091 45 TickUS_actu.attach(&captUS_trig,0.2);
Nanaud 22:f891c2bce091 46 Ticker_asserv.attach(&asserv,0.015);
Nanaud 22:f891c2bce091 47 //Ticker_affUS.attach(&affUltrasons,1.0);
Nanaud 22:f891c2bce091 48
Nanaud 22:f891c2bce091 49 /* Initialisation des capteurs à ultrasons */
Nanaud 22:f891c2bce091 50 echo1.rise(&echoRise1); // Interruptions pour les capteurs à ultrasons
Nanaud 0:dc036b67c87c 51 echo1.fall(&echoFall1);
Nanaud 0:dc036b67c87c 52 echo2.rise(&echoRise2);
Nanaud 0:dc036b67c87c 53 echo2.fall(&echoFall2);
Nanaud 0:dc036b67c87c 54 echo3.rise(&echoRise3);
Nanaud 0:dc036b67c87c 55 echo3.fall(&echoFall3);
Nanaud 0:dc036b67c87c 56 echo4.rise(&echoRise4);
Nanaud 0:dc036b67c87c 57 echo4.fall(&echoFall4);
Nanaud 0:dc036b67c87c 58 echo5.rise(&echoRise5);
Nanaud 0:dc036b67c87c 59 echo5.fall(&echoFall5);
Nanaud 0:dc036b67c87c 60 echo6.rise(&echoRise6);
Nanaud 0:dc036b67c87c 61 echo6.fall(&echoFall6);
Nanaud 4:ad9b7355332e 62
Nanaud 22:f891c2bce091 63 /* debug */
Nanaud 22:f891c2bce091 64 pc.attach(&serialIT); // Interruption liaison série
Nanaud 22:f891c2bce091 65 bt.attach(&bluetoothIT); // Interruption bluetooth
Nanaud 22:f891c2bce091 66 pc.baud(9600);
Nanaud 22:f891c2bce091 67 pc.format(8,SerialBase::None,1);
Nanaud 22:f891c2bce091 68 bt.baud(9600);
Nanaud 22:f891c2bce091 69 bt.format(8,SerialBase::None,1);
Nanaud 4:ad9b7355332e 70
Nanaud 22:f891c2bce091 71 /* Autres */
Nanaud 22:f891c2bce091 72 //btnBlue.rise(&boutonBleu);
Nanaud 4:ad9b7355332e 73
Nanaud 22:f891c2bce091 74 /* Boucle infinie */
Nanaud 14:dd3c756c6d48 75 while(1) {
Nanaud 22:f891c2bce091 76 if (Tirette == 1 && match == 0) { // Stand-by
Nanaud 22:f891c2bce091 77 // Le match n'a pas encore commencé
Nanaud 22:f891c2bce091 78 // La LED est allumée
Nanaud 22:f891c2bce091 79 // Le compteur du match reste à 0
Nanaud 22:f891c2bce091 80 Led = 1;
Nanaud 22:f891c2bce091 81 match = 0;
Nanaud 22:f891c2bce091 82 cptGlobal=0;
Nanaud 22:f891c2bce091 83 }
Nanaud 22:f891c2bce091 84
Nanaud 22:f891c2bce091 85 else if (Tirette == 0 && match == 0) { // Début du match
Nanaud 22:f891c2bce091 86 // Le match débute
Nanaud 22:f891c2bce091 87 // La LED s'éteind
Nanaud 22:f891c2bce091 88 Led = 0;
Nanaud 22:f891c2bce091 89 match = 1;
Nanaud 22:f891c2bce091 90 cptGlobal = 0;
Nanaud 20:7d206773f39e 91
Nanaud 22:f891c2bce091 92 indice= 1;
Nanaud 20:7d206773f39e 93 fnc = objEtape[indice];
Nanaud 20:7d206773f39e 94 xC = objX[indice];
Nanaud 20:7d206773f39e 95 yC = objY[indice];
Nanaud 20:7d206773f39e 96 }
Nanaud 20:7d206773f39e 97
Nanaud 20:7d206773f39e 98 if (indice>=NbObj) {
Nanaud 19:c419033c0967 99 fnc = 0;
Nanaud 19:c419033c0967 100 }
Nanaud 14:dd3c756c6d48 101 }
Nanaud 0:dc036b67c87c 102 }
Nanaud 22:f891c2bce091 103
Nanaud 22:f891c2bce091 104 void btnBlueIT()
Nanaud 22:f891c2bce091 105 {
Nanaud 22:f891c2bce091 106 /* Rien */
Nanaud 22:f891c2bce091 107 }
Nanaud 22:f891c2bce091 108
Nanaud 22:f891c2bce091 109 void globalCounterIT()
Nanaud 22:f891c2bce091 110 {
Nanaud 22:f891c2bce091 111 cptGlobal++;
Nanaud 22:f891c2bce091 112
Nanaud 22:f891c2bce091 113 if(cptGlobal==95) { // Le drapeau doit être hissé à 95sec
Nanaud 22:f891c2bce091 114 FlagGOTO(0);
Nanaud 22:f891c2bce091 115 }
Nanaud 22:f891c2bce091 116
Nanaud 22:f891c2bce091 117 if(cptGlobal>=100) { // Le robot doit s'arrêter à 100sec
Nanaud 22:f891c2bce091 118 fnc=0;
Nanaud 22:f891c2bce091 119 }
Nanaud 22:f891c2bce091 120 }