CRAC Team / Mbed 2 deprecated PHARE2021

Dependencies:   mbed bloc_8_pompe2 Herkulex_library_2022 ident_crac1 bloc_pompe2

Committer:
ares1999
Date:
Tue Mar 08 16:03:27 2022 +0000
Revision:
2:c7f2e7d8b305
Child:
3:77e937c315f1
t

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ares1999 2:c7f2e7d8b305 1 #include "main.h"
ares1999 2:c7f2e7d8b305 2
ares1999 2:c7f2e7d8b305 3 //initialisations relatives au Bus CAN
ares1999 2:c7f2e7d8b305 4 CAN bus_can(PB_8,PB_9,1000000);
ares1999 2:c7f2e7d8b305 5
ares1999 2:c7f2e7d8b305 6 CANMessage rx_message ;
ares1999 2:c7f2e7d8b305 7 char data[1] = {0x28};
ares1999 2:c7f2e7d8b305 8 CANMessage tx_message(0x220,data,1,CANData,CANStandard);
ares1999 2:c7f2e7d8b305 9
ares1999 2:c7f2e7d8b305 10 int flag_reception_CAN = 0 ;
ares1999 2:c7f2e7d8b305 11 void interruption_reception(void) ;
ares1999 2:c7f2e7d8b305 12 void gestion_Message_CAN(void) ;
ares1999 2:c7f2e7d8b305 13 void Envoi_msg_CAN(char donnee);
ares1999 2:c7f2e7d8b305 14
ares1999 2:c7f2e7d8b305 15 CANMessage msgRxBuffer[SIZE_FIFO];
ares1999 2:c7f2e7d8b305 16 unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN
ares1999 2:c7f2e7d8b305 17 signed char FIFO_lecture=0;//Position du fifo de lecture des messages CAN
ares1999 2:c7f2e7d8b305 18 unsigned short ackFinAction = 0;
ares1999 2:c7f2e7d8b305 19
ares1999 2:c7f2e7d8b305 20 int main (void)
ares1999 2:c7f2e7d8b305 21 {
ares1999 2:c7f2e7d8b305 22 wait_ms(200); //tempo pour boot
ares1999 2:c7f2e7d8b305 23 bus_can.attach(&interruption_reception); //création de l'interrupt attachée à la réception sur le CAN
ares1999 2:c7f2e7d8b305 24 //servo_interrupt_en(); //permettre les interuptions
ares1999 2:c7f2e7d8b305 25 //activer_torque();
ares1999 2:c7f2e7d8b305 26 wait_ms(200);
ares1999 2:c7f2e7d8b305 27 //pc.printf("\nLAUNCHED\n\r");
ares1999 2:c7f2e7d8b305 28
ares1999 2:c7f2e7d8b305 29 while(1)
ares1999 2:c7f2e7d8b305 30 {
ares1999 2:c7f2e7d8b305 31 if(flag_reception_CAN)
ares1999 2:c7f2e7d8b305 32 {
ares1999 2:c7f2e7d8b305 33 gestion_Message_CAN();
ares1999 2:c7f2e7d8b305 34 }
ares1999 2:c7f2e7d8b305 35 }
ares1999 2:c7f2e7d8b305 36 }
ares1999 2:c7f2e7d8b305 37
ares1999 2:c7f2e7d8b305 38 void interruption_reception(void)
ares1999 2:c7f2e7d8b305 39 {
ares1999 2:c7f2e7d8b305 40 bus_can.write(tx_message);
ares1999 2:c7f2e7d8b305 41 bus_can.read(rx_message);
ares1999 2:c7f2e7d8b305 42 flag_reception_CAN = 1 ;
ares1999 2:c7f2e7d8b305 43 }
ares1999 2:c7f2e7d8b305 44
ares1999 2:c7f2e7d8b305 45 void gestion_Message_CAN(void)
ares1999 2:c7f2e7d8b305 46 {
ares1999 2:c7f2e7d8b305 47 int identifiant = rx_message.id ;
ares1999 2:c7f2e7d8b305 48
ares1999 2:c7f2e7d8b305 49 switch (identifiant)
ares1999 2:c7f2e7d8b305 50 {
ares1999 2:c7f2e7d8b305 51 case TORQUE_ACT:
ares1999 2:c7f2e7d8b305 52 activer_torque();
ares1999 2:c7f2e7d8b305 53 break;
ares1999 2:c7f2e7d8b305 54
ares1999 2:c7f2e7d8b305 55 case TORQUE_DESACT:
ares1999 2:c7f2e7d8b305 56 desactiver_torque();
ares1999 2:c7f2e7d8b305 57 break;
ares1999 2:c7f2e7d8b305 58
ares1999 2:c7f2e7d8b305 59 case BRAS_PRISE:
ares1999 2:c7f2e7d8b305 60 fct_prise_avant(SERIAL_BAS_DROITE);
ares1999 2:c7f2e7d8b305 61 break;
ares1999 2:c7f2e7d8b305 62
ares1999 2:c7f2e7d8b305 63 case TORQUE_1:
ares1999 2:c7f2e7d8b305 64 setTorque(AV_BASE,TORQUE_ON,5);
ares1999 2:c7f2e7d8b305 65 break;
ares1999 2:c7f2e7d8b305 66
ares1999 2:c7f2e7d8b305 67 default:
ares1999 2:c7f2e7d8b305 68 break;
ares1999 2:c7f2e7d8b305 69 }
ares1999 2:c7f2e7d8b305 70 flag_reception_CAN = 0 ;
ares1999 2:c7f2e7d8b305 71
ares1999 2:c7f2e7d8b305 72 }
ares1999 2:c7f2e7d8b305 73
ares1999 2:c7f2e7d8b305 74 void Envoi_msg_CAN(char donnee)
ares1999 2:c7f2e7d8b305 75 {
ares1999 2:c7f2e7d8b305 76 CANMessage message;
ares1999 2:c7f2e7d8b305 77 message.id = 0x220;
ares1999 2:c7f2e7d8b305 78 message.len=1;
ares1999 2:c7f2e7d8b305 79 message.format=CANStandard;
ares1999 2:c7f2e7d8b305 80 message.type=CANData;
ares1999 2:c7f2e7d8b305 81 message.data[0]=donnee;
ares1999 2:c7f2e7d8b305 82
ares1999 2:c7f2e7d8b305 83 bus_can.write(message);
ares1999 2:c7f2e7d8b305 84 }