strat des robots

Fork of CRAC-Strat_2017 by CRAC Team

Committer:
antbig
Date:
Fri Apr 15 10:49:40 2016 +0000
Revision:
1:116040d14164
Parent:
0:ad97421fb1fb
Child:
2:8d8e2cf798a3
Premier test fonctionnel avec le petit robot,

Who changed what in which revision?

UserRevisionLine numberNew 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 0:ad97421fb1fb 11
antbig 0:ad97421fb1fb 12 /****************************************************************************************/
antbig 0:ad97421fb1fb 13 /* FUNCTION NAME: canRx_ISR */
antbig 0:ad97421fb1fb 14 /* DESCRIPTION : Interruption en réception sur le CAN */
antbig 0:ad97421fb1fb 15 /****************************************************************************************/
antbig 0:ad97421fb1fb 16 void canRx_ISR (void)
antbig 0:ad97421fb1fb 17 {
antbig 0:ad97421fb1fb 18 if (can1.read(msgRxBuffer[FIFO_ecriture])) {
antbig 0:ad97421fb1fb 19 if(msgRxBuffer[FIFO_ecriture].id==RESET_STRAT) mbed_reset();
antbig 0:ad97421fb1fb 20 else FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO;
antbig 0:ad97421fb1fb 21 }
antbig 0:ad97421fb1fb 22 }
antbig 0:ad97421fb1fb 23
antbig 0:ad97421fb1fb 24
antbig 0:ad97421fb1fb 25 /**********************************************************************************/
antbig 0:ad97421fb1fb 26 /* FUNCTION NAME: main */
antbig 0:ad97421fb1fb 27 /* DESCRIPTION : Fonction principal du programme */
antbig 0:ad97421fb1fb 28 /**********************************************************************************/
antbig 0:ad97421fb1fb 29 int main() {
antbig 0:ad97421fb1fb 30 can1.frequency(1000000); // fréquence de travail 1Mbit/s
antbig 0:ad97421fb1fb 31 can1.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
antbig 0:ad97421fb1fb 32
antbig 0:ad97421fb1fb 33 /**
antbig 0:ad97421fb1fb 34 On enregistre les id des AX12 présent sur la carte
antbig 0:ad97421fb1fb 35 **/
antbig 0:ad97421fb1fb 36 AX12_register(1,0x0FF);
antbig 0:ad97421fb1fb 37 AX12_register(2);
antbig 0:ad97421fb1fb 38
antbig 0:ad97421fb1fb 39 wait_ms(1000);
antbig 1:116040d14164 40 tactile_printf("Initialisation cartes...");
antbig 0:ad97421fb1fb 41 initRobot();//Initialisation du robot
antbig 0:ad97421fb1fb 42
antbig 0:ad97421fb1fb 43 wait_ms(9000);//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
antbig 0:ad97421fb1fb 52 while(true) {
antbig 1:116040d14164 53 automate_process();//Boucle dans l'automate principal
antbig 0:ad97421fb1fb 54 canProcessRx();//Traitement des trames CAN en attente
antbig 0:ad97421fb1fb 55 AX12_doLoop();//Vérification de la position des AX12
antbig 0:ad97421fb1fb 56 }
antbig 0:ad97421fb1fb 57 }