strat des robots

Fork of CRAC-Strat_2017 by CRAC Team

Revision:
0:ad97421fb1fb
Child:
1:116040d14164
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 13 22:04:54 2016 +0000
@@ -0,0 +1,57 @@
+#include "global.h"
+
+CAN can1(p30,p29); // Rx&Tx pour le CAN
+CANMessage msgRxBuffer[SIZE_FIFO]; // buffer en réception pour le CAN
+unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN
+
+extern "C" void mbed_reset();//Pour pouvoir reset la carte
+
+DigitalOut led1(LED1);//Led d'indication de problème, si elle clignote, c'est pas bon
+
+/****************************************************************************************/
+/* FUNCTION NAME: canRx_ISR                                                             */
+/* DESCRIPTION  : Interruption en réception sur le CAN                                  */
+/****************************************************************************************/
+void canRx_ISR (void)
+{
+    if (can1.read(msgRxBuffer[FIFO_ecriture])) {
+        if(msgRxBuffer[FIFO_ecriture].id==RESET_STRAT) mbed_reset();
+        else FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO;
+    }
+}
+
+
+/**********************************************************************************/
+/* FUNCTION NAME: main                                                            */
+/* DESCRIPTION  : Fonction principal du programme                                 */
+/**********************************************************************************/
+int main() {
+    can1.frequency(1000000); // fréquence de travail 1Mbit/s
+    can1.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
+    
+    /**
+    On enregistre les id des AX12 présent sur la carte
+    **/
+    AX12_register(1,0x0FF);
+    AX12_register(2);
+    
+    wait_ms(1000);
+    
+    initRobot();//Initialisation du robot
+    
+    wait_ms(9000);//Attente pour que toutes les cartes se lancent et surtout le CANBlue
+    tactile_printf("Initialisation cartes...");
+
+    /**
+    A retirer lors de l'utilisation avec selecteur de stratégie sur IHM
+    **/
+    //strcpy(cheminFileStart,"/local/test.txt");//On ouvre le fichier test.txt
+    //loadAllInstruction();//Mise en cache de toute les instructions
+    
+    
+    while(true) {
+        //automate_process();//Boucle dans l'automate principal
+        canProcessRx();//Traitement des trames CAN en attente  
+        AX12_doLoop();//Vérification de la position des AX12
+    }
+}