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.
Fork of CRAC-Strat_2017_homologation_petit_rob by
main.cpp@12:14729d584500, 2016-05-09 (annotated)
- Committer:
- antbig
- Date:
- Mon May 09 09:10:17 2016 +0000
- Revision:
- 12:14729d584500
- Parent:
- 9:d0042422d95a
- Child:
- 13:93edbb03a8c6
1Version utilis? lors du match 5
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| antbig | 0:ad97421fb1fb | 1 | #include "global.h" |
| antbig | 0:ad97421fb1fb | 2 | |
| antbig | 0:ad97421fb1fb | 3 | CAN can1(p30,p29); // Rx&Tx pour le CAN |
| antbig | 0:ad97421fb1fb | 4 | CANMessage msgRxBuffer[SIZE_FIFO]; // buffer en réception pour le CAN |
| antbig | 0:ad97421fb1fb | 5 | unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN |
| antbig | 0:ad97421fb1fb | 6 | |
| antbig | 0:ad97421fb1fb | 7 | extern "C" void mbed_reset();//Pour pouvoir reset la carte |
| antbig | 0:ad97421fb1fb | 8 | |
| antbig | 0:ad97421fb1fb | 9 | DigitalOut led1(LED1);//Led d'indication de problème, si elle clignote, c'est pas bon |
| antbig | 1:116040d14164 | 10 | DigitalOut led2(LED2);//Led d'indication de problème, si elle clignote, c'est pas bon |
| antbig | 8:0edc7dfb7f7e | 11 | DigitalOut led3(LED3);//Led d'indication de problème, si elle clignote, c'est pas bon |
| antbig | 8:0edc7dfb7f7e | 12 | DigitalOut led4(LED4);//Led d'indication de problème, si elle clignote, c'est pas bon |
| antbig | 0:ad97421fb1fb | 13 | |
| antbig | 0:ad97421fb1fb | 14 | /****************************************************************************************/ |
| antbig | 0:ad97421fb1fb | 15 | /* FUNCTION NAME: canRx_ISR */ |
| antbig | 0:ad97421fb1fb | 16 | /* DESCRIPTION : Interruption en réception sur le CAN */ |
| antbig | 0:ad97421fb1fb | 17 | /****************************************************************************************/ |
| antbig | 0:ad97421fb1fb | 18 | void canRx_ISR (void) |
| antbig | 0:ad97421fb1fb | 19 | { |
| antbig | 0:ad97421fb1fb | 20 | if (can1.read(msgRxBuffer[FIFO_ecriture])) { |
| antbig | 0:ad97421fb1fb | 21 | if(msgRxBuffer[FIFO_ecriture].id==RESET_STRAT) mbed_reset(); |
| antbig | 0:ad97421fb1fb | 22 | else FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO; |
| antbig | 0:ad97421fb1fb | 23 | } |
| antbig | 0:ad97421fb1fb | 24 | } |
| antbig | 0:ad97421fb1fb | 25 | |
| antbig | 0:ad97421fb1fb | 26 | |
| antbig | 0:ad97421fb1fb | 27 | /**********************************************************************************/ |
| antbig | 0:ad97421fb1fb | 28 | /* FUNCTION NAME: main */ |
| antbig | 0:ad97421fb1fb | 29 | /* DESCRIPTION : Fonction principal du programme */ |
| antbig | 0:ad97421fb1fb | 30 | /**********************************************************************************/ |
| antbig | 0:ad97421fb1fb | 31 | int main() { |
| antbig | 0:ad97421fb1fb | 32 | can1.frequency(1000000); // fréquence de travail 1Mbit/s |
| antbig | 0:ad97421fb1fb | 33 | can1.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN |
| antbig | 0:ad97421fb1fb | 34 | |
| antbig | 9:d0042422d95a | 35 | wait_ms(1000); |
| antbig | 12:14729d584500 | 36 | #ifdef ROBOT_BIG |
| antbig | 12:14729d584500 | 37 | tactile_printf("Initialisation gros robot"); |
| antbig | 12:14729d584500 | 38 | #else |
| antbig | 12:14729d584500 | 39 | tactile_printf("Initialisation petit robot"); |
| antbig | 12:14729d584500 | 40 | #endif |
| antbig | 0:ad97421fb1fb | 41 | initRobot();//Initialisation du robot |
| antbig | 0:ad97421fb1fb | 42 | |
| antbig | 12:14729d584500 | 43 | wait_ms(1000);//Attente pour que toutes les cartes se lancent et surtout le CANBlue |
| antbig | 1:116040d14164 | 44 | |
| antbig | 0:ad97421fb1fb | 45 | /** |
| antbig | 0:ad97421fb1fb | 46 | A retirer lors de l'utilisation avec selecteur de stratégie sur IHM |
| antbig | 0:ad97421fb1fb | 47 | **/ |
| antbig | 0:ad97421fb1fb | 48 | //strcpy(cheminFileStart,"/local/test.txt");//On ouvre le fichier test.txt |
| antbig | 0:ad97421fb1fb | 49 | //loadAllInstruction();//Mise en cache de toute les instructions |
| antbig | 0:ad97421fb1fb | 50 | |
| antbig | 0:ad97421fb1fb | 51 | while(true) { |
| antbig | 9:d0042422d95a | 52 | automate_process();//Boucle dans l'automate principal |
| antbig | 0:ad97421fb1fb | 53 | canProcessRx();//Traitement des trames CAN en attente |
| antbig | 0:ad97421fb1fb | 54 | AX12_doLoop();//Vérification de la position des AX12 |
| antbig | 0:ad97421fb1fb | 55 | } |
| antbig | 0:ad97421fb1fb | 56 | } |
