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_V2 by
main.cpp
- Committer:
- antbig
- Date:
- 2016-04-15
- Revision:
- 1:116040d14164
- Parent:
- 0:ad97421fb1fb
- Child:
- 2:8d8e2cf798a3
File content as of revision 1:116040d14164:
#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
DigitalOut led2(LED2);//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);
    tactile_printf("Initialisation cartes...");
    initRobot();//Initialisation du robot
    
    wait_ms(9000);//Attente pour que toutes les cartes se lancent et surtout le CANBlue
    
    /**
    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
    }
}
            
    