Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
main.cpp
- Committer:
- antbig
- Date:
- 2016-05-09
- Revision:
- 12:14729d584500
- Parent:
- 9:d0042422d95a
- Child:
- 13:93edbb03a8c6
File content as of revision 12:14729d584500:
#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 DigitalOut led3(LED3);//Led d'indication de problème, si elle clignote, c'est pas bon DigitalOut led4(LED4);//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 wait_ms(1000); #ifdef ROBOT_BIG tactile_printf("Initialisation gros robot"); #else tactile_printf("Initialisation petit robot"); #endif initRobot();//Initialisation du robot wait_ms(1000);//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 } }