AresENSEA-CDF2020
/
AresCDFMainCode_us2
Test
main.cpp@22:f891c2bce091, 2020-10-27 (annotated)
- Committer:
- Nanaud
- Date:
- Tue Oct 27 17:27:33 2020 +0000
- Revision:
- 22:f891c2bce091
- Parent:
- 21:e5f0f5abb5ae
Homologation J-2
Who changed what in which revision?
User | Revision | Line number | New 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 | } |