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:
- ClementBreteau
- Date:
- 2017-01-31
- Revision:
- 13:93edbb03a8c6
- Parent:
- 12:14729d584500
- Child:
- 14:c8fc06c4887f
File content as of revision 13:93edbb03a8c6:
#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
GoStraight(100, 0, 0, 2);
while(true) {
//void GoStraight (signed short distance,unsigned char recalage, unsigned short newValue, unsigned char isEnchainement)
automate_process();//Boucle dans l'automate principal
canProcessRx();//Traitement des trames CAN en attente
AX12_doLoop();//Vérification de la position des AX12
}
}
