Carte esclave gros robot

Dependencies:   mbed Herkulex_Library_2019 ident_crac actions_Pr

Committer:
gein
Date:
Fri Apr 22 16:14:30 2022 +0000
Revision:
54:529b24478996
Parent:
53:b7d2682fba44
base bras mesure

Who changed what in which revision?

UserRevisionLine numberNew contents of line
goldmas 53:b7d2682fba44 1 #include "main.h"
Artiom 0:bc74da1c502f 2
Artiom 0:bc74da1c502f 3 #define SIZE_FIFO 50
Artiom 0:bc74da1c502f 4
Artiom 30:d034f469359e 5
Artiom 0:bc74da1c502f 6 CAN can(PB_8,PB_9,1000000); // Rx&Tx pour le CAN
Artiom 0:bc74da1c502f 7
gein 54:529b24478996 8
gein 54:529b24478996 9
gein 54:529b24478996 10 Serial pc(USBTX,USBRX,115200);
Artiom 0:bc74da1c502f 11
gein 54:529b24478996 12 DigitalOut me(PA_4,1);
gein 54:529b24478996 13 char data[2]= {0x75};
gein 54:529b24478996 14 CANMessage tx_msg(0x732,data,1,CANData,CANStandard);
Artiom 0:bc74da1c502f 15 CANMessage msgRxBuffer[SIZE_FIFO];
Artiom 0:bc74da1c502f 16 unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN
Artiom 0:bc74da1c502f 17 signed char FIFO_lecture=0;//Position du fifo de lecture des messages CAN
marwanesaich 45:11614fc23e53 18 unsigned char EtatGameEnd=0, EtatGameStart = 0, EtatGameRecalage = 0;
marwanesaich 45:11614fc23e53 19 unsigned short ackFinAction = 0;
gein 54:529b24478996 20
gein 54:529b24478996 21 AnalogIn avant_droit(PB_0);//1
gein 54:529b24478996 22 AnalogIn avant_gauche(PB_1);//A
gein 54:529b24478996 23 CANMessage tx_message;
gein 54:529b24478996 24 char bidon[8];
gein 54:529b24478996 25
gein 54:529b24478996 26 char bras_choix=0,num_ca=0,msg_carre=0;
goldmas 52:c019890fbc59 27 void initialisation_CAN (void) ;
Artiom 32:e9947815c4d7 28
Artiom 32:e9947815c4d7 29
gein 54:529b24478996 30
kyxstark 21:edf6d03fdb20 31 void canProcessRx(void);
Artiom 12:191486ba5118 32
Artiom 0:bc74da1c502f 33 /*********************************************************************************************/
Artiom 0:bc74da1c502f 34 /* FUNCTION NAME: canRx_ISR */
Artiom 0:bc74da1c502f 35 /* DESCRIPTION : lit les messages sur le can et les stocke dans la FIFO */
Artiom 0:bc74da1c502f 36 /*********************************************************************************************/
Artiom 0:bc74da1c502f 37 void canRx_ISR (void)
Artiom 0:bc74da1c502f 38 {
gein 54:529b24478996 39 if (can.read(msgRxBuffer[FIFO_ecriture])) {
gein 54:529b24478996 40 FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO;
Artiom 0:bc74da1c502f 41 }
Artiom 0:bc74da1c502f 42 }
Artiom 0:bc74da1c502f 43
Artiom 0:bc74da1c502f 44 int main()
Artiom 0:bc74da1c502f 45 {
Artiom 0:bc74da1c502f 46 can.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
goldmas 52:c019890fbc59 47 SendRawId(ALIVE_ACTIONNEURS_AVANT);
gein 54:529b24478996 48 CANMessage tx_message(0x222, bidon, 2, CANData, CANStandard);
Artiom 0:bc74da1c502f 49 servo_interrupt_en(); //permettre les interuptions
goldmas 53:b7d2682fba44 50 wait(1);
Artiom 32:e9947815c4d7 51 deverouillage_torque();
gein 54:529b24478996 52 setTorque(101,TORQUE_ON,2);
gein 54:529b24478996 53 setTorque(4,TORQUE_ON,2);
gein 54:529b24478996 54 setTorque(102,TORQUE_ON,2);
gein 54:529b24478996 55 setTorque(5,TORQUE_ON,2);
maximilienlv 47:ced7758fb2ce 56 pc.printf("\nLAUNCHED\n\r");
maximilienlv 47:ced7758fb2ce 57 //on rentre tous les bras dans le robot dans le vagin de sa mere
gein 54:529b24478996 58 // gabarit_robot_gauche();
gein 54:529b24478996 59 // wait_ms(300);
gein 54:529b24478996 60 // gabarit_robot_droit();
gein 54:529b24478996 61 // wait_ms(300);
gein 54:529b24478996 62 // gabarit_robot_manche();
gein 54:529b24478996 63 // wait_ms(300);
maximilienlv 49:af201920161a 64 //DigitalIn cap2(PC_14);
gein 54:529b24478996 65 // SendRawId(CHECK_ACTIONNEURS_AVANT);
gein 54:529b24478996 66 while(1) {
Artiom 0:bc74da1c502f 67 canProcessRx();
gein 54:529b24478996 68 // f_mesure();//dt35
gein 54:529b24478996 69 traitement();
gein 54:529b24478996 70 // selection_bras_attraper();
gein 54:529b24478996 71 // selection_bras_relacher();
gein 54:529b24478996 72 // automate_manche_air_haut();
gein 54:529b24478996 73 // automate_manche_air_bas();
gein 54:529b24478996 74 // automate_manche_air_moy();
gein 54:529b24478996 75 // selection_bras_prepa();
gein 54:529b24478996 76 // selection_bras_poser();
goldmas 52:c019890fbc59 77 /*
maximilienlv 49:af201920161a 78 automate_bras_attraper_1();
maximilienlv 49:af201920161a 79 automate_bras_relacher_1();
maximilienlv 49:af201920161a 80 automate_bras_attraper_2();
maximilienlv 49:af201920161a 81 automate_bras_relacher_2();
maximilienlv 49:af201920161a 82 automate_bras_attraper_3();
maximilienlv 49:af201920161a 83 automate_bras_relacher_3();
goldmas 52:c019890fbc59 84 */
goldmas 51:ecbdff4587ce 85 //automate_manche_air() ;
goldmas 51:ecbdff4587ce 86 /*automate_position_lidar();*/
gein 54:529b24478996 87 tx_message.data[1] = avant_droit.read() * 260;
gein 54:529b24478996 88 tx_message.data[0] = avant_gauche.read() * 260;
gein 54:529b24478996 89 can.write(tx_message);
gein 54:529b24478996 90 wait_ms(20);
maximilienlv 49:af201920161a 91 }
Artiom 0:bc74da1c502f 92 }
maximilienlv 47:ced7758fb2ce 93 //fin du main
Artiom 0:bc74da1c502f 94
Artiom 0:bc74da1c502f 95 /****************************************************************************************/
Artiom 0:bc74da1c502f 96 /* FUNCTION NAME: canProcessRx */
Artiom 0:bc74da1c502f 97 /* DESCRIPTION : Fonction de traitement des messages CAN */
Artiom 0:bc74da1c502f 98 /****************************************************************************************/
Artiom 0:bc74da1c502f 99 void canProcessRx(void)
Artiom 0:bc74da1c502f 100 {
Artiom 0:bc74da1c502f 101 static signed char FIFO_occupation=0,FIFO_max_occupation=0;
Artiom 0:bc74da1c502f 102 CANMessage msgTx=CANMessage();
maximilienlv 49:af201920161a 103
Artiom 0:bc74da1c502f 104 FIFO_occupation=FIFO_ecriture-FIFO_lecture;
Artiom 0:bc74da1c502f 105 if(FIFO_occupation<0)
Artiom 0:bc74da1c502f 106 FIFO_occupation=FIFO_occupation+SIZE_FIFO;
maximilienlv 49:af201920161a 107
Artiom 0:bc74da1c502f 108 if(FIFO_max_occupation<FIFO_occupation)
Artiom 0:bc74da1c502f 109 FIFO_max_occupation=FIFO_occupation;
maximilienlv 49:af201920161a 110
Artiom 0:bc74da1c502f 111 if(FIFO_occupation!=0) {
Artiom 0:bc74da1c502f 112 int identifiant=msgRxBuffer[FIFO_lecture].id;
Artiom 0:bc74da1c502f 113
gein 54:529b24478996 114 switch(identifiant) {
marwanesaich 45:11614fc23e53 115 case GLOBAL_START:
marwanesaich 45:11614fc23e53 116 EtatGameStart = 1;
maximilienlv 47:ced7758fb2ce 117 EtatGameEnd = 0;
marwanesaich 45:11614fc23e53 118 break;
marwanesaich 45:11614fc23e53 119 case RECALAGE_START :
marwanesaich 45:11614fc23e53 120 EtatGameRecalage = 1;
marwanesaich 45:11614fc23e53 121 break;
gein 54:529b24478996 122
marwanesaich 45:11614fc23e53 123 case INSTRUCTION_END_MOTEUR:
marwanesaich 45:11614fc23e53 124 ackFinAction = msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
marwanesaich 45:11614fc23e53 125 break;
Artiom 32:e9947815c4d7 126
Artiom 0:bc74da1c502f 127 case GLOBAL_GAME_END:
Artiom 0:bc74da1c502f 128 EtatGameEnd = 1;
maximilienlv 47:ced7758fb2ce 129 EtatGameStart = 0;
Artiom 0:bc74da1c502f 130 break;
Artiom 0:bc74da1c502f 131
Artiom 0:bc74da1c502f 132 case DATA_TELEMETRE: //Lit le telemetre N°X suivant la data dans le CAN
Artiom 0:bc74da1c502f 133 char numero_telemetre=msgRxBuffer[FIFO_lecture].data[0];
Artiom 0:bc74da1c502f 134 short distance=lecture_telemetre(numero_telemetre);
Artiom 0:bc74da1c502f 135
Artiom 0:bc74da1c502f 136
Artiom 0:bc74da1c502f 137 msgTx.id=RECEPTION_DATA; // tx Valeur Telemetre1
Artiom 0:bc74da1c502f 138 msgTx.len=2;
Artiom 0:bc74da1c502f 139 msgTx.format=CANStandard;
Artiom 0:bc74da1c502f 140 msgTx.type=CANData;
Artiom 0:bc74da1c502f 141 // Rayon sur 2 octets
Artiom 0:bc74da1c502f 142 msgTx.data[0]=(unsigned char)distance;
Artiom 0:bc74da1c502f 143 msgTx.data[1]=(unsigned char)(distance>>8);
Artiom 0:bc74da1c502f 144 can.write(msgTx);
Artiom 0:bc74da1c502f 145 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_DATA);
Artiom 0:bc74da1c502f 146 break;
Artiom 0:bc74da1c502f 147
Artiom 0:bc74da1c502f 148 case DATA_RECALAGE:
Artiom 0:bc74da1c502f 149 short distance1=lecture_telemetre(1);
Artiom 0:bc74da1c502f 150 short distance2=lecture_telemetre(2);
Artiom 0:bc74da1c502f 151 short distance3=lecture_telemetre(3);
Artiom 0:bc74da1c502f 152 short distance4=lecture_telemetre(4);
Artiom 0:bc74da1c502f 153
Artiom 0:bc74da1c502f 154 msgTx.id=RECEPTION_RECALAGE; // tx Valeur Telemetre1
Artiom 0:bc74da1c502f 155 msgTx.len=8;
Artiom 0:bc74da1c502f 156 msgTx.format=CANStandard;
Artiom 0:bc74da1c502f 157 msgTx.type=CANData;
Artiom 0:bc74da1c502f 158 // Rayon sur 2 octets
Artiom 0:bc74da1c502f 159 msgTx.data[0]=(unsigned char)distance1;
Artiom 0:bc74da1c502f 160 msgTx.data[1]=(unsigned char)(distance1>>8);
Artiom 0:bc74da1c502f 161 msgTx.data[2]=(unsigned char)distance2;
Artiom 0:bc74da1c502f 162 msgTx.data[3]=(unsigned char)(distance2>>8);
Artiom 0:bc74da1c502f 163 msgTx.data[4]=(unsigned char)distance3;
Artiom 0:bc74da1c502f 164 msgTx.data[5]=(unsigned char)(distance3>>8);
Artiom 0:bc74da1c502f 165 msgTx.data[6]=(unsigned char)distance4;
Artiom 0:bc74da1c502f 166 msgTx.data[7]=(unsigned char)(distance4>>8);
Artiom 0:bc74da1c502f 167 can.write(msgTx);
Artiom 0:bc74da1c502f 168 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_RECALAGE);
Artiom 0:bc74da1c502f 169 break;
Artiom 44:381ecf63e6ab 170
Artiom 44:381ecf63e6ab 171 case DATA_TELEMETRE_LOGIQUE:
Artiom 43:7fff7f4d79a1 172 msgTx.id=RECEPTION_TELEMETRE_LOGIQUE; // tx Valeur Telemetre1
Artiom 43:7fff7f4d79a1 173 msgTx.len=4;
Artiom 43:7fff7f4d79a1 174 msgTx.format=CANStandard;
Artiom 43:7fff7f4d79a1 175 msgTx.type=CANData;
Artiom 43:7fff7f4d79a1 176 msgTx.data[0]=(unsigned char)DT1_interrupt_Ex;
Artiom 43:7fff7f4d79a1 177 msgTx.data[1]=(unsigned char)DT2_interrupt_Ex;
Artiom 43:7fff7f4d79a1 178 msgTx.data[2]=(unsigned char)DT3_interrupt_Ex;
Artiom 43:7fff7f4d79a1 179 msgTx.data[3]=(unsigned char)DT4_interrupt_Ex;
Artiom 43:7fff7f4d79a1 180 can.write(msgTx);
Artiom 43:7fff7f4d79a1 181 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_TELEMETRE_LOGIQUE);
Artiom 43:7fff7f4d79a1 182 break;
maximilienlv 49:af201920161a 183
maximilienlv 49:af201920161a 184 //----------------------------------------------------------------cases test-----------------------------------------------------------------//
gein 54:529b24478996 185
maximilienlv 47:ced7758fb2ce 186 case TEST_BRAS_A:
goldmas 51:ecbdff4587ce 187 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 51:ecbdff4587ce 188 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 51:ecbdff4587ce 189 aut_bras_av_3_at = 0;
marwanesaich 45:11614fc23e53 190 break;
gein 54:529b24478996 191
maximilienlv 47:ced7758fb2ce 192 case TEST_BRAS_B:
goldmas 51:ecbdff4587ce 193 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 51:ecbdff4587ce 194 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 51:ecbdff4587ce 195 aut_bras_av_3_re = 0;
maximilienlv 47:ced7758fb2ce 196 break;
gein 54:529b24478996 197
maximilienlv 47:ced7758fb2ce 198 case TEST_BRAS_C:
goldmas 51:ecbdff4587ce 199 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 51:ecbdff4587ce 200 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
maximilienlv 49:af201920161a 201 aut_bras_av_3_at = 1;
Artiom 0:bc74da1c502f 202 break;
gein 54:529b24478996 203
maximilienlv 47:ced7758fb2ce 204 case TEST_BRAS_D:
goldmas 51:ecbdff4587ce 205 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 51:ecbdff4587ce 206 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
maximilienlv 49:af201920161a 207 aut_bras_av_3_re = 1;
maximilienlv 47:ced7758fb2ce 208 break;
gein 54:529b24478996 209
maximilienlv 49:af201920161a 210 case TEST_BRAS_1:
maximilienlv 49:af201920161a 211 test_BRAS_1();
maximilienlv 47:ced7758fb2ce 212 break;
gein 54:529b24478996 213
maximilienlv 49:af201920161a 214 case TEST_BRAS_2:
gein 54:529b24478996 215 test_BRAS_2();
Artiom 2:9e63099cca99 216 break;
gein 54:529b24478996 217
maximilienlv 49:af201920161a 218 case TEST_BRAS_3:
gein 54:529b24478996 219 test_BRAS_3();
maximilienlv 49:af201920161a 220 break;
gein 54:529b24478996 221
gein 54:529b24478996 222 case TEST_BRAS_4:
gein 54:529b24478996 223 test_BRAS_4();
Artiom 31:29500874c1cc 224 break;
gein 54:529b24478996 225
gein 54:529b24478996 226 case TEST_BRAS_5:
Artiom 2:9e63099cca99 227 break;
gein 54:529b24478996 228
gein 54:529b24478996 229 case TEST_BRAS_6:
Artiom 2:9e63099cca99 230 break;
gein 54:529b24478996 231 ////////////////////////////////////////////CASE DE canPETITIONS/////////////////////////////////////////////
goldmas 52:c019890fbc59 232 case BRAS_AT:
goldmas 52:c019890fbc59 233 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 52:c019890fbc59 234 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
gein 54:529b24478996 235 aut_bras_av_at = 1;
goldmas 52:c019890fbc59 236 break;
gein 54:529b24478996 237
goldmas 52:c019890fbc59 238 case BRAS_RE:
goldmas 52:c019890fbc59 239 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 52:c019890fbc59 240 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 52:c019890fbc59 241 aut_bras_av_re = 1;
goldmas 52:c019890fbc59 242 break;
gein 54:529b24478996 243
goldmas 53:b7d2682fba44 244 case BRAS_PREPA:
maximilienlv 49:af201920161a 245 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
maximilienlv 49:af201920161a 246 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
gein 54:529b24478996 247 aut_bras_av_prepa = 1;
Artiom 0:bc74da1c502f 248 break;
gein 54:529b24478996 249
goldmas 53:b7d2682fba44 250 case BRAS_POSE:
maximilienlv 49:af201920161a 251 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
maximilienlv 49:af201920161a 252 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 53:b7d2682fba44 253 aut_bras_av_pose = 1;
maximilienlv 49:af201920161a 254 break;
gein 54:529b24478996 255
maximilienlv 47:ced7758fb2ce 256 case GABARIT_ROBOT:
maximilienlv 49:af201920161a 257 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
maximilienlv 48:ef0dc0df8c77 258 gabarit_robot_droit();
maximilienlv 48:ef0dc0df8c77 259 gabarit_robot_gauche();
Artiom 20:42f8ec726ac8 260 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 20:42f8ec726ac8 261 break;
gein 54:529b24478996 262
goldmas 52:c019890fbc59 263 case AUTOMATE_MANCHE_HAUT:
goldmas 51:ecbdff4587ce 264 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 52:c019890fbc59 265 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 52:c019890fbc59 266 aut_manche_haut = 1;
gein 54:529b24478996 267 break;
gein 54:529b24478996 268
goldmas 52:c019890fbc59 269 case AUTOMATE_MANCHE_BAS:
goldmas 51:ecbdff4587ce 270 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 52:c019890fbc59 271 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 52:c019890fbc59 272 aut_manche_bas = 1;
goldmas 51:ecbdff4587ce 273 break;
gein 54:529b24478996 274
goldmas 53:b7d2682fba44 275 case AUTOMATE_MANCHE_MOY :
goldmas 53:b7d2682fba44 276 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 53:b7d2682fba44 277 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
goldmas 53:b7d2682fba44 278 aut_manche_moy = 1;
goldmas 53:b7d2682fba44 279 break ;
gein 54:529b24478996 280
goldmas 53:b7d2682fba44 281 case PAVILLON_DEPLOYE :
goldmas 53:b7d2682fba44 282 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
goldmas 53:b7d2682fba44 283 pavilon_deploye();
goldmas 53:b7d2682fba44 284 break ;
gein 54:529b24478996 285
goldmas 53:b7d2682fba44 286 case LECTURE_GIROUETTE :
goldmas 53:b7d2682fba44 287 unsigned char port_final ;
goldmas 53:b7d2682fba44 288 port_final = lecture_girouette() ;
goldmas 53:b7d2682fba44 289 //if( port_final != 2)
gein 54:529b24478996 290 SendMsgCan(VALEUR_GIROUETTE, &port_final, sizeof(char)) ;
goldmas 53:b7d2682fba44 291 break ;
gein 54:529b24478996 292
goldmas 53:b7d2682fba44 293 case TEST_LECTURE_GIROUETTE :
goldmas 53:b7d2682fba44 294 test_lecture_girou() ;
goldmas 53:b7d2682fba44 295 break ;
gein 54:529b24478996 296 case BF_RANGER:
gein 54:529b24478996 297 msg_carre=1;
gein 54:529b24478996 298
gein 54:529b24478996 299 pc.printf(" ok recu ");
gein 54:529b24478996 300 break;
gein 54:529b24478996 301
gein 54:529b24478996 302 case BF_PRETEST:
gein 54:529b24478996 303 msg_carre=3;
gein 54:529b24478996 304
gein 54:529b24478996 305
gein 54:529b24478996 306 break;
gein 54:529b24478996 307
gein 54:529b24478996 308 case BF_MESURE:
gein 54:529b24478996 309 msg_carre=2;
gein 54:529b24478996 310 num_ca=msgRxBuffer[FIFO_lecture].data[0];
gein 54:529b24478996 311
gein 54:529b24478996 312 break;
gein 54:529b24478996 313
gein 54:529b24478996 314 case BF_COLOR:
gein 54:529b24478996 315 set_color(msgRxBuffer[FIFO_lecture].data[0] & 0x1);
gein 54:529b24478996 316 break;
gein 54:529b24478996 317
gein 54:529b24478996 318 case BF_TEST:
gein 54:529b24478996 319 BF_test_mesure(msgRxBuffer[FIFO_lecture].data[0] & 0x1);
gein 54:529b24478996 320
gein 54:529b24478996 321 break;
gein 54:529b24478996 322 case BF_POS:
gein 54:529b24478996 323 Interrupt2_en();
gein 54:529b24478996 324 pc.printf(" haut: %d ",getPos(ID_HAUT,2));
gein 54:529b24478996 325 Interrupt2_en();
gein 54:529b24478996 326 pc.printf(" MILLIEU: %d ",getPos(ID_MILLIEU,2));
gein 54:529b24478996 327
gein 54:529b24478996 328 break;
gein 54:529b24478996 329
maximilienlv 47:ced7758fb2ce 330 default:
marwanesaich 45:11614fc23e53 331 break;
Artiom 0:bc74da1c502f 332 }
Artiom 0:bc74da1c502f 333 FIFO_lecture=(FIFO_lecture+1)%SIZE_FIFO;
Artiom 0:bc74da1c502f 334 }
goldmas 52:c019890fbc59 335 }
goldmas 52:c019890fbc59 336
gein 54:529b24478996 337 void initialisation_CAN(void)
goldmas 52:c019890fbc59 338 {
goldmas 52:c019890fbc59 339 CANMessage msg_init;
gein 54:529b24478996 340 msg_init.id = CHECK_ACTIONNEURS_AVANT;
goldmas 52:c019890fbc59 341 msg_init.len=1;
goldmas 52:c019890fbc59 342 msg_init.format=CANStandard;
goldmas 52:c019890fbc59 343 msg_init.type=CANData;
goldmas 52:c019890fbc59 344 msg_init.data[0]= 0 ;
goldmas 52:c019890fbc59 345
goldmas 52:c019890fbc59 346 can.write(msg_init);
maximilienlv 47:ced7758fb2ce 347 }