carte_strategie_2019
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
main.cpp@36:6dd30780bd8e, 2018-05-02 (annotated)
- Committer:
- Sitkah
- Date:
- Wed May 02 20:40:57 2018 +0000
- Revision:
- 36:6dd30780bd8e
- Parent:
- 34:6aa4b46b102e
- Child:
- 38:76f886a1c8e6
Recalage en une fois
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sitkah | 29:41e02746041d | 1 | #include "mbed.h" |
antbig | 0:ad97421fb1fb | 2 | #include "global.h" |
Sitkah | 29:41e02746041d | 3 | #include <CAN.h> |
Sitkah | 29:41e02746041d | 4 | |
Sitkah | 29:41e02746041d | 5 | CAN can1(PB_8,PB_9); // Rx&Tx pour le CAN |
Sitkah | 29:41e02746041d | 6 | CAN can2(PB_5, PB_13); |
Sitkah | 30:a1e37af4bbde | 7 | |
Sitkah | 31:833fc481b002 | 8 | void bluetooth_init(void); |
Sitkah | 30:a1e37af4bbde | 9 | DigitalIn choix_robot(PG_12); |
Sitkah | 29:41e02746041d | 10 | CANMessage msgRxBuffer[SIZE_FIFO]; |
Sitkah | 29:41e02746041d | 11 | unsigned char FIFO_ecriture; |
Sitkah | 29:41e02746041d | 12 | char strat_sd[10][SIZE+8]; |
Sitkah | 29:41e02746041d | 13 | char PATH[10][SIZE+8]; |
Sitkah | 29:41e02746041d | 14 | |
Sitkah | 31:833fc481b002 | 15 | //Serial rn42(PG_14, PG_9); |
Sitkah | 31:833fc481b002 | 16 | //Serial rn42(PA_1,PA_2); |
Sitkah | 31:833fc481b002 | 17 | Serial rn42_Tx(PA_2,NC); |
Sitkah | 31:833fc481b002 | 18 | Serial rn42_Rx(NC,PA_1); |
Sitkah | 31:833fc481b002 | 19 | |
Sitkah | 30:a1e37af4bbde | 20 | Serial pc(USBTX,USBRX); |
Sitkah | 31:833fc481b002 | 21 | LiaisonBluetooth liaison_Rx(&rn42_Rx,&pc); |
Sitkah | 31:833fc481b002 | 22 | LiaisonBluetooth liaison_Tx(&rn42_Tx,&pc); |
antbig | 0:ad97421fb1fb | 23 | |
Sitkah | 29:41e02746041d | 24 | char cheminFileStart[SIZE+8]; //Le chemin du fichier de strat, utiliser strcpy(cheminFileStart,"/local/strat.txt"); |
Sitkah | 29:41e02746041d | 25 | struct S_Instruction strat_instructions[SIZE_BUFFER_FILE]; //La liste des instruction chargé en mémoire |
Sitkah | 29:41e02746041d | 26 | unsigned char nb_instructions; //Le nombre d'instruction dans le fichier de strategie |
Sitkah | 29:41e02746041d | 27 | unsigned char actual_instruction;//La ligne de l'instruction en cours d'execution |
Sitkah | 29:41e02746041d | 28 | |
Sitkah | 30:a1e37af4bbde | 29 | |
antbig | 0:ad97421fb1fb | 30 | |
Sitkah | 29:41e02746041d | 31 | unsigned char InversStrat = 1;//Si à 1, indique que l'on part de l'autre cote de la table(inversion des Y) |
Sitkah | 29:41e02746041d | 32 | |
Sitkah | 29:41e02746041d | 33 | |
Sitkah | 29:41e02746041d | 34 | unsigned short waitingAckID=0;//L'id du ack attendu |
Sitkah | 29:41e02746041d | 35 | unsigned short waitingAckFrom=0;//La provenance du ack attendu |
Sitkah | 29:41e02746041d | 36 | char modeTelemetre; // Si à 1, indique que l'on attend une reponse du telemetre |
antbig | 0:ad97421fb1fb | 37 | |
antbig | 0:ad97421fb1fb | 38 | DigitalOut led1(LED1);//Led d'indication de problème, si elle clignote, c'est pas bon |
antbig | 1:116040d14164 | 39 | DigitalOut led2(LED2);//Led d'indication de problème, si elle clignote, c'est pas bon |
antbig | 8:0edc7dfb7f7e | 40 | DigitalOut led3(LED3);//Led d'indication de problème, si elle clignote, c'est pas bon |
antbig | 8:0edc7dfb7f7e | 41 | DigitalOut led4(LED4);//Led d'indication de problème, si elle clignote, c'est pas bon |
antbig | 0:ad97421fb1fb | 42 | |
antbig | 0:ad97421fb1fb | 43 | /****************************************************************************************/ |
antbig | 0:ad97421fb1fb | 44 | /* FUNCTION NAME: canRx_ISR */ |
antbig | 0:ad97421fb1fb | 45 | /* DESCRIPTION : Interruption en réception sur le CAN */ |
antbig | 0:ad97421fb1fb | 46 | /****************************************************************************************/ |
antbig | 0:ad97421fb1fb | 47 | void canRx_ISR (void) |
antbig | 0:ad97421fb1fb | 48 | { |
Sitkah | 30:a1e37af4bbde | 49 | if (can2.read(msgRxBuffer[FIFO_ecriture])) { |
Sitkah | 29:41e02746041d | 50 | //if(msgRxBuffer[FIFO_ecriture].id==RESET_STRAT) mbed_reset(); |
Sitkah | 29:41e02746041d | 51 | /*else*/ FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO; |
Sitkah | 36:6dd30780bd8e | 52 | //canProcessRx(); |
antbig | 0:ad97421fb1fb | 53 | } |
antbig | 0:ad97421fb1fb | 54 | } |
antbig | 0:ad97421fb1fb | 55 | |
antbig | 0:ad97421fb1fb | 56 | |
Sitkah | 29:41e02746041d | 57 | |
Sitkah | 29:41e02746041d | 58 | |
antbig | 0:ad97421fb1fb | 59 | /**********************************************************************************/ |
antbig | 0:ad97421fb1fb | 60 | /* FUNCTION NAME: main */ |
antbig | 0:ad97421fb1fb | 61 | /* DESCRIPTION : Fonction principal du programme */ |
antbig | 0:ad97421fb1fb | 62 | /**********************************************************************************/ |
antbig | 0:ad97421fb1fb | 63 | int main() { |
antbig | 0:ad97421fb1fb | 64 | can1.frequency(1000000); // fréquence de travail 1Mbit/s |
Sitkah | 30:a1e37af4bbde | 65 | can2.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN |
Sitkah | 29:41e02746041d | 66 | can2.frequency(1000000); |
antbig | 12:14729d584500 | 67 | #ifdef ROBOT_BIG |
Sitkah | 30:a1e37af4bbde | 68 | lcd.DisplayStringAt(0, 0,(uint8_t *)"Initialisation gros robot", LEFT_MODE); |
antbig | 12:14729d584500 | 69 | #else |
Sitkah | 30:a1e37af4bbde | 70 | lcd.DisplayStringAt(0, 0,(uint8_t *)"Initialisation petit robot", LEFT_MODE); |
antbig | 12:14729d584500 | 71 | #endif |
ClementBreteau | 18:cc5fec34ed9c | 72 | led1 = 1; |
Sitkah | 31:833fc481b002 | 73 | /*rn42.baud(115200); |
Sitkah | 31:833fc481b002 | 74 | pc.baud(115200);*/ |
Sitkah | 31:833fc481b002 | 75 | bluetooth_init(); |
Sitkah | 30:a1e37af4bbde | 76 | //initRobot();//Initialisation du robot |
Sitkah | 30:a1e37af4bbde | 77 | //initRobotActionneur(); |
Sitkah | 29:41e02746041d | 78 | lecture_fichier(); |
ClementBreteau | 18:cc5fec34ed9c | 79 | led1 = 0; |
Sitkah | 29:41e02746041d | 80 | //wait_ms(2000);//Attente pour que toutes les cartes se lancent et surtout le CANBlue |
Sitkah | 29:41e02746041d | 81 | |
antbig | 0:ad97421fb1fb | 82 | while(true) { |
Sitkah | 29:41e02746041d | 83 | automate_etat_ihm(); |
antbig | 9:d0042422d95a | 84 | automate_process();//Boucle dans l'automate principal |
Sitkah | 36:6dd30780bd8e | 85 | canProcessRx(); |
ClementBreteau | 15:c2fc239e85df | 86 | //AX12_doLoop();//Vérification de la position des AX12 |
antbig | 0:ad97421fb1fb | 87 | } |
antbig | 0:ad97421fb1fb | 88 | } |
Sitkah | 31:833fc481b002 | 89 | |
Sitkah | 31:833fc481b002 | 90 | void bluetooth_init(void){ |
Sitkah | 31:833fc481b002 | 91 | rn42_Tx.baud(115200); |
Sitkah | 31:833fc481b002 | 92 | rn42_Rx.baud(115200); |
Sitkah | 31:833fc481b002 | 93 | pc.baud(115200); |
Sitkah | 31:833fc481b002 | 94 | pc.printf("ok1"); |
Sitkah | 31:833fc481b002 | 95 | /*while(1){ |
Sitkah | 31:833fc481b002 | 96 | while(pc.readable()){ |
Sitkah | 31:833fc481b002 | 97 | rn42_Tx.putc(pc.getc()); |
Sitkah | 31:833fc481b002 | 98 | |
Sitkah | 31:833fc481b002 | 99 | } |
Sitkah | 31:833fc481b002 | 100 | while(rn42_Rx.readable()){ |
Sitkah | 31:833fc481b002 | 101 | pc.putc(rn42_Rx.getc()); |
Sitkah | 31:833fc481b002 | 102 | } |
Sitkah | 31:833fc481b002 | 103 | }*/ |
Sitkah | 31:833fc481b002 | 104 | } |