Strategie_13h30
Fork of CRAC-Strat_2017_homologation_gros_rob by
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "global.h" 00002 00003 CAN can1(p30,p29); // Rx&Tx pour le CAN 00004 CANMessage msgRxBuffer[SIZE_FIFO]; // buffer en réception pour le CAN 00005 unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN 00006 00007 extern "C" void mbed_reset();//Pour pouvoir reset la carte 00008 00009 DigitalOut led1(LED1);//Led d'indication de problème, si elle clignote, c'est pas bon 00010 DigitalOut led2(LED2);//Led d'indication de problème, si elle clignote, c'est pas bon 00011 DigitalOut led3(LED3);//Led d'indication de problème, si elle clignote, c'est pas bon 00012 DigitalOut led4(LED4);//Led d'indication de problème, si elle clignote, c'est pas bon 00013 00014 /****************************************************************************************/ 00015 /* FUNCTION NAME: canRx_ISR */ 00016 /* DESCRIPTION : Interruption en réception sur le CAN */ 00017 /****************************************************************************************/ 00018 void canRx_ISR (void) 00019 { 00020 if (can1.read(msgRxBuffer[FIFO_ecriture])) { 00021 if(msgRxBuffer[FIFO_ecriture].id==RESET_STRAT) mbed_reset(); 00022 else FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO; 00023 } 00024 } 00025 00026 00027 /**********************************************************************************/ 00028 /* FUNCTION NAME: main */ 00029 /* DESCRIPTION : Fonction principal du programme */ 00030 /**********************************************************************************/ 00031 int main() { 00032 can1.frequency(1000000); // fréquence de travail 1Mbit/s 00033 can1.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN 00034 00035 00036 wait_ms(5000); 00037 #ifdef ROBOT_BIG 00038 tactile_printf("Initialisation gros robot"); 00039 #else 00040 tactile_printf("Initialisation petit robot"); 00041 #endif 00042 led1 = 1; 00043 initRobot();//Initialisation du robot 00044 initRobotActionneur(); 00045 led1 = 0; 00046 wait_ms(2000);//Attente pour que toutes les cartes se lancent et surtout le CANBlue 00047 00048 /** 00049 A retirer lors de l'utilisation avec selecteur de stratégie sur IHM 00050 **/ 00051 //strcpy(cheminFileStart,"/local/test.txt");//On ouvre le fichier test.txt 00052 //loadAllInstruction();//Mise en cache de toute les instructions 00053 00054 while(true) { 00055 automate_process();//Boucle dans l'automate principal 00056 canProcessRx();//Traitement des trames CAN en attente 00057 //AX12_doLoop();//Vérification de la position des AX12 00058 } 00059 }
Generated on Tue Jul 12 2022 19:28:47 by 1.7.2