carte esclave petit robot

Dependencies:   mbed Herkulex_Library_2019 actions_Gr ident_crac actions_Pr

Committer:
Artiom
Date:
Sat May 25 15:24:20 2019 +0000
Revision:
45:85dda95dbc87
Parent:
41:832128353732

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kyxstark 27:9627700d989f 1
Artiom 1:568955af8c2b 2 #include "main.h"
Artiom 0:bc74da1c502f 3
Artiom 0:bc74da1c502f 4 #define SIZE_FIFO 50
Artiom 0:bc74da1c502f 5
Artiom 30:d034f469359e 6
Artiom 0:bc74da1c502f 7 CAN can(PB_8,PB_9,1000000); // Rx&Tx pour le CAN
Artiom 0:bc74da1c502f 8
kyxstark 22:9e92a2b941ba 9 Serial pc(USBTX,USBRX);
Artiom 0:bc74da1c502f 10
Artiom 0:bc74da1c502f 11 CANMessage msgRxBuffer[SIZE_FIFO];
Artiom 0:bc74da1c502f 12 unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN
Artiom 0:bc74da1c502f 13 signed char FIFO_lecture=0;//Position du fifo de lecture des messages CAN
Artiom 0:bc74da1c502f 14 unsigned char EtatGameEnd=0;
Artiom 0:bc74da1c502f 15
Artiom 32:e9947815c4d7 16 char cote;
Artiom 41:832128353732 17 unsigned short distance_recalage,distance_revenir;
Artiom 41:832128353732 18 unsigned short distance_goldenium;
Artiom 32:e9947815c4d7 19
Artiom 41:832128353732 20 Timer timeout;
Artiom 32:e9947815c4d7 21
kyxstark 21:edf6d03fdb20 22 void canProcessRx(void);
Artiom 12:191486ba5118 23
Artiom 12:191486ba5118 24
Artiom 0:bc74da1c502f 25 /*********************************************************************************************/
Artiom 0:bc74da1c502f 26 /* FUNCTION NAME: canRx_ISR */
Artiom 0:bc74da1c502f 27 /* DESCRIPTION : lit les messages sur le can et les stocke dans la FIFO */
Artiom 0:bc74da1c502f 28 /*********************************************************************************************/
Artiom 0:bc74da1c502f 29 void canRx_ISR (void)
Artiom 0:bc74da1c502f 30 {
Artiom 0:bc74da1c502f 31 if (can.read(msgRxBuffer[FIFO_ecriture])) {
Artiom 0:bc74da1c502f 32 if (msgRxBuffer[FIFO_ecriture].id==GLOBAL_GAME_END) {
Artiom 0:bc74da1c502f 33
Artiom 0:bc74da1c502f 34 }
Artiom 0:bc74da1c502f 35 FIFO_ecriture=(FIFO_ecriture+1)%SIZE_FIFO;
Artiom 0:bc74da1c502f 36
Artiom 0:bc74da1c502f 37 }
Artiom 0:bc74da1c502f 38
Artiom 0:bc74da1c502f 39 }
Artiom 0:bc74da1c502f 40
Artiom 0:bc74da1c502f 41 int main()
Artiom 0:bc74da1c502f 42 {
Artiom 0:bc74da1c502f 43 can.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
Artiom 0:bc74da1c502f 44 servo_interrupt_en(); //permettre les interuptions
Artiom 11:6c11c081c855 45
Artiom 0:bc74da1c502f 46 wait(1);//attente servo boot
Artiom 31:29500874c1cc 47
Artiom 31:29500874c1cc 48
kyxstark 21:edf6d03fdb20 49 #ifdef ROBOT_SMALL
kyxstark 22:9e92a2b941ba 50 pc.printf("\nPetit robot\n\n");
Artiom 32:e9947815c4d7 51 deverouillage_torque();
kyxstark 21:edf6d03fdb20 52 #endif
kyxstark 21:edf6d03fdb20 53
kyxstark 21:edf6d03fdb20 54
Artiom 31:29500874c1cc 55
kyxstark 21:edf6d03fdb20 56 #ifdef ROBOT_BIG
kyxstark 22:9e92a2b941ba 57 pc.printf("\nGros robot\n\n");
kyxstark 38:9295a9721acb 58 //clear(doigt,2);
kyxstark 38:9295a9721acb 59 //setTorque(doigt, TORQUE_ON,2);
kyxstark 38:9295a9721acb 60 deverouillage_torque();
kyxstark 21:edf6d03fdb20 61 positionControl(doigt,384,100,BLED_ON,2);
kyxstark 21:edf6d03fdb20 62 wait(1.0);
kyxstark 21:edf6d03fdb20 63 #endif
kyxstark 21:edf6d03fdb20 64
kyxstark 38:9295a9721acb 65 gabarit_robot();
kyxstark 38:9295a9721acb 66
kyxstark 21:edf6d03fdb20 67
kyxstark 22:9e92a2b941ba 68 pc.printf("\nLAUNCHED");
Artiom 0:bc74da1c502f 69 while(1) {
Artiom 0:bc74da1c502f 70 canProcessRx();
Artiom 41:832128353732 71 f_mesure();//dt35 distance
Artiom 11:6c11c081c855 72
kyxstark 21:edf6d03fdb20 73
kyxstark 21:edf6d03fdb20 74 #ifdef ROBOT_SMALL
Artiom 5:6e198cdd99ad 75 automate_ventouse_presentoir_arriere();
kyxstark 26:33c7ff467bd9 76 automate_ventouse_presentoir_avant();
Artiom 7:553f3f1c2c53 77
Artiom 6:45f9cf44718a 78 automate_ventouse_goldenium_arriere();
kyxstark 26:33c7ff467bd9 79 automate_ventouse_goldenium_avant();
Artiom 31:29500874c1cc 80
Artiom 6:45f9cf44718a 81 automate_ventouse_sol_avant();
Artiom 7:553f3f1c2c53 82 automate_ventouse_sol_arriere();
Artiom 7:553f3f1c2c53 83
kyxstark 26:33c7ff467bd9 84 automate_ventouse_balance_avant();
Artiom 12:191486ba5118 85 automate_ventouse_balance_arriere();
Artiom 12:191486ba5118 86
Artiom 12:191486ba5118 87 automate_ventouse_relache_arriere();
kyxstark 26:33c7ff467bd9 88 automate_ventouse_relache_avant();
Artiom 14:b1abd2f6df75 89
Artiom 13:9e19048eb065 90 automate_ventouse_sol_avant_relache();
Artiom 14:b1abd2f6df75 91 automate_ventouse_sol_arriere_relache();
Artiom 14:b1abd2f6df75 92
Artiom 14:b1abd2f6df75 93 automate_ventouse_accelerateur_arriere();
kyxstark 26:33c7ff467bd9 94 automate_ventouse_accelerateur_avant();
kyxstark 21:edf6d03fdb20 95 #endif
kyxstark 21:edf6d03fdb20 96
kyxstark 21:edf6d03fdb20 97 #ifdef ROBOT_BIG
kyxstark 38:9295a9721acb 98 automate_ventouse_presentoir_avant();
kyxstark 26:33c7ff467bd9 99 automate_ventouse_goldenium_avant();
kyxstark 26:33c7ff467bd9 100 automate_ventouse_relache_avant();
kyxstark 38:9295a9721acb 101 automate_ventouse_accelerateur_avant();
Artiom 31:29500874c1cc 102
kyxstark 21:edf6d03fdb20 103 fifo_couleur();
kyxstark 21:edf6d03fdb20 104 ascenseur();
kyxstark 21:edf6d03fdb20 105
kyxstark 21:edf6d03fdb20 106 #endif
Artiom 13:9e19048eb065 107
Artiom 0:bc74da1c502f 108 if(EtatGameEnd==1) {
Artiom 0:bc74da1c502f 109 while(1);
Artiom 0:bc74da1c502f 110 }
Artiom 0:bc74da1c502f 111
Artiom 0:bc74da1c502f 112 }
Artiom 0:bc74da1c502f 113 }
Artiom 0:bc74da1c502f 114 /****************************************************************************************/
Artiom 0:bc74da1c502f 115 /* FUNCTION NAME: canProcessRx */
Artiom 0:bc74da1c502f 116 /* DESCRIPTION : Fonction de traitement des messages CAN */
Artiom 0:bc74da1c502f 117 /****************************************************************************************/
Artiom 0:bc74da1c502f 118 void canProcessRx(void)
Artiom 0:bc74da1c502f 119 {
Artiom 0:bc74da1c502f 120 static signed char FIFO_occupation=0,FIFO_max_occupation=0;
Artiom 0:bc74da1c502f 121 CANMessage msgTx=CANMessage();
Artiom 0:bc74da1c502f 122 FIFO_occupation=FIFO_ecriture-FIFO_lecture;
Artiom 0:bc74da1c502f 123 if(FIFO_occupation<0)
Artiom 0:bc74da1c502f 124 FIFO_occupation=FIFO_occupation+SIZE_FIFO;
Artiom 0:bc74da1c502f 125 if(FIFO_max_occupation<FIFO_occupation)
Artiom 0:bc74da1c502f 126 FIFO_max_occupation=FIFO_occupation;
Artiom 0:bc74da1c502f 127 if(FIFO_occupation!=0) {
Artiom 0:bc74da1c502f 128 int identifiant=msgRxBuffer[FIFO_lecture].id;
Artiom 0:bc74da1c502f 129
Artiom 0:bc74da1c502f 130 switch(identifiant) {
Artiom 32:e9947815c4d7 131
Artiom 32:e9947815c4d7 132
Artiom 32:e9947815c4d7 133 case CHOICE_COLOR:
Artiom 32:e9947815c4d7 134 cote = msgRxBuffer[FIFO_lecture].data[0];
Artiom 35:04c3ad41064d 135 /*SendMsgCan(0x788, (unsigned char*)&cote, 1);
Artiom 35:04c3ad41064d 136 if(cote) printf("\nCote violet : %d",cote);
Artiom 35:04c3ad41064d 137 else printf("\nCote jaune : %d", cote);*/
Artiom 32:e9947815c4d7 138 break;
Artiom 32:e9947815c4d7 139
Artiom 0:bc74da1c502f 140 case GLOBAL_GAME_END:
Artiom 0:bc74da1c502f 141 EtatGameEnd = 1;
Artiom 0:bc74da1c502f 142 break;
Artiom 0:bc74da1c502f 143
Artiom 0:bc74da1c502f 144 case DATA_TELEMETRE: //Lit le telemetre N°X suivant la data dans le CAN
Artiom 0:bc74da1c502f 145 char numero_telemetre=msgRxBuffer[FIFO_lecture].data[0];
Artiom 0:bc74da1c502f 146 short distance=lecture_telemetre(numero_telemetre);
Artiom 0:bc74da1c502f 147
Artiom 0:bc74da1c502f 148
Artiom 0:bc74da1c502f 149 msgTx.id=RECEPTION_DATA; // tx Valeur Telemetre1
Artiom 0:bc74da1c502f 150 msgTx.len=2;
Artiom 0:bc74da1c502f 151 msgTx.format=CANStandard;
Artiom 0:bc74da1c502f 152 msgTx.type=CANData;
Artiom 0:bc74da1c502f 153 // Rayon sur 2 octets
Artiom 0:bc74da1c502f 154 msgTx.data[0]=(unsigned char)distance;
Artiom 0:bc74da1c502f 155 msgTx.data[1]=(unsigned char)(distance>>8);
Artiom 0:bc74da1c502f 156
Artiom 0:bc74da1c502f 157 can.write(msgTx);
Artiom 0:bc74da1c502f 158 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_DATA);
Artiom 0:bc74da1c502f 159 break;
Artiom 0:bc74da1c502f 160
Artiom 41:832128353732 161 case DATA_TELEMETRE_LOGIQUE:
Artiom 41:832128353732 162 msgTx.id=RECEPTION_TELEMETRE_LOGIQUE; // tx Valeur Telemetre1
Artiom 41:832128353732 163 msgTx.len=4;
Artiom 41:832128353732 164 msgTx.format=CANStandard;
Artiom 41:832128353732 165 msgTx.type=CANData;
Artiom 41:832128353732 166 msgTx.data[0]=(unsigned char)DT1_interrupt_Ex;
Artiom 41:832128353732 167 msgTx.data[1]=(unsigned char)DT2_interrupt_Ex;
Artiom 41:832128353732 168 msgTx.data[2]=(unsigned char)DT3_interrupt_Ex;
Artiom 41:832128353732 169 msgTx.data[3]=(unsigned char)DT4_interrupt_Ex;
Artiom 41:832128353732 170 can.write(msgTx);
Artiom 41:832128353732 171 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_TELEMETRE_LOGIQUE);
Artiom 41:832128353732 172 break;
Artiom 41:832128353732 173
Artiom 0:bc74da1c502f 174 case DATA_RECALAGE:
Artiom 0:bc74da1c502f 175 short distance1=lecture_telemetre(1);
Artiom 0:bc74da1c502f 176 short distance2=lecture_telemetre(2);
Artiom 0:bc74da1c502f 177 short distance3=lecture_telemetre(3);
Artiom 0:bc74da1c502f 178 short distance4=lecture_telemetre(4);
Artiom 41:832128353732 179
Artiom 0:bc74da1c502f 180 msgTx.id=RECEPTION_RECALAGE; // tx Valeur Telemetre1
Artiom 0:bc74da1c502f 181 msgTx.len=8;
Artiom 0:bc74da1c502f 182 msgTx.format=CANStandard;
Artiom 0:bc74da1c502f 183 msgTx.type=CANData;
Artiom 0:bc74da1c502f 184 // Rayon sur 2 octets
Artiom 0:bc74da1c502f 185 msgTx.data[0]=(unsigned char)distance1;
Artiom 0:bc74da1c502f 186 msgTx.data[1]=(unsigned char)(distance1>>8);
Artiom 0:bc74da1c502f 187 msgTx.data[2]=(unsigned char)distance2;
Artiom 0:bc74da1c502f 188 msgTx.data[3]=(unsigned char)(distance2>>8);
Artiom 0:bc74da1c502f 189 msgTx.data[4]=(unsigned char)distance3;
Artiom 0:bc74da1c502f 190 msgTx.data[5]=(unsigned char)(distance3>>8);
Artiom 0:bc74da1c502f 191 msgTx.data[6]=(unsigned char)distance4;
Artiom 0:bc74da1c502f 192 msgTx.data[7]=(unsigned char)(distance4>>8);
Artiom 0:bc74da1c502f 193 can.write(msgTx);
Artiom 0:bc74da1c502f 194 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_RECALAGE);
Artiom 0:bc74da1c502f 195 break;
Artiom 31:29500874c1cc 196
kyxstark 27:9627700d989f 197
kyxstark 27:9627700d989f 198 //--------------------------------------------------------------------------ACK carte pompe----------------------------------------------
kyxstark 27:9627700d989f 199
kyxstark 27:9627700d989f 200
kyxstark 27:9627700d989f 201 case HACHEUR_STATUT_VENTOUSES:
kyxstark 27:9627700d989f 202 status_pompe = msgRxBuffer[FIFO_lecture].data[1];
kyxstark 27:9627700d989f 203 //can.write(CANMessage(0x529, &status_pompe,1));
kyxstark 27:9627700d989f 204 break;
kyxstark 27:9627700d989f 205
kyxstark 27:9627700d989f 206 case HACHEUR_GET_ATOM_ACK:
kyxstark 27:9627700d989f 207 status_pompe |= (0x01 << msgRxBuffer[FIFO_lecture].data[0]);
kyxstark 27:9627700d989f 208 //can.write(CANMessage(0x529, &status_pompe,1));
kyxstark 27:9627700d989f 209 break;
kyxstark 27:9627700d989f 210
kyxstark 27:9627700d989f 211 case HACHEUR_RELEASE_ATOM_ACK :
kyxstark 27:9627700d989f 212 status_pompe &= ~(0x01 << msgRxBuffer[FIFO_lecture].data[0]);
kyxstark 27:9627700d989f 213 break;
kyxstark 27:9627700d989f 214
kyxstark 27:9627700d989f 215 //-------------------------------------------------------------------------------------------------------------------------------------------
kyxstark 27:9627700d989f 216
kyxstark 38:9295a9721acb 217 case PRESENTOIR_AVANT:
kyxstark 38:9295a9721acb 218 fpresentoir_avant=1;
kyxstark 38:9295a9721acb 219 break;
kyxstark 38:9295a9721acb 220
kyxstark 38:9295a9721acb 221 case GABARIT_ROBOT:
kyxstark 38:9295a9721acb 222 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
kyxstark 38:9295a9721acb 223 gabarit_robot();
kyxstark 38:9295a9721acb 224 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
kyxstark 38:9295a9721acb 225 break;
kyxstark 38:9295a9721acb 226
kyxstark 40:124575240d09 227 case AVANT_RELACHE:
kyxstark 40:124575240d09 228 favant_relache=1;
kyxstark 40:124575240d09 229 break;
kyxstark 38:9295a9721acb 230
kyxstark 38:9295a9721acb 231
kyxstark 27:9627700d989f 232 #ifdef ROBOT_SMALL
kyxstark 23:93a427b242ce 233
kyxstark 23:93a427b242ce 234
Artiom 4:4a79942713fa 235 //-------------------------------------------------------------------------Actions petit robot----------------------------------------------
Artiom 32:e9947815c4d7 236
kyxstark 38:9295a9721acb 237
Artiom 0:bc74da1c502f 238
Artiom 0:bc74da1c502f 239 case PRESENTOIR_ARRIERE:
Artiom 5:6e198cdd99ad 240 fpresentoir_arriere=1;
Artiom 0:bc74da1c502f 241 break;
Artiom 0:bc74da1c502f 242
Artiom 31:29500874c1cc 243 case BALANCE_AVANT:
Artiom 31:29500874c1cc 244 fbalance_avant=1;
Artiom 31:29500874c1cc 245 break;
Artiom 32:e9947815c4d7 246
Artiom 0:bc74da1c502f 247 case BALANCE_ARRIERE:
Artiom 12:191486ba5118 248 fbalance_arriere=1;
Artiom 2:9e63099cca99 249 break;
Artiom 32:e9947815c4d7 250
Artiom 31:29500874c1cc 251 case ACCELERATEUR_AVANT:
Artiom 31:29500874c1cc 252 faccelerateur_avant=1;
Artiom 41:832128353732 253 distance_recalage=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 41:832128353732 254 distance_revenir=msgRxBuffer[FIFO_lecture].data[2]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[3])<<8);
Artiom 31:29500874c1cc 255 break;
Artiom 2:9e63099cca99 256
Artiom 2:9e63099cca99 257 case ACCELERATEUR_ARRIERE:
Artiom 14:b1abd2f6df75 258 faccelerateur_arriere=1;
Artiom 2:9e63099cca99 259 break;
Artiom 6:45f9cf44718a 260
Artiom 31:29500874c1cc 261 case GOLDENIUM_AVANT:
Artiom 31:29500874c1cc 262 fgoldenium_avant=1;
Artiom 41:832128353732 263 distance_goldenium=msgRxBuffer[FIFO_lecture].data[0]|((unsigned short)(msgRxBuffer[FIFO_lecture].data[1])<<8);
Artiom 41:832128353732 264
Artiom 31:29500874c1cc 265 break;
Artiom 32:e9947815c4d7 266
Artiom 2:9e63099cca99 267 case GOLDENIUM_ARRIERE:
Artiom 6:45f9cf44718a 268 fgoldenium_arriere=1;
Artiom 2:9e63099cca99 269 break;
Artiom 6:45f9cf44718a 270
Artiom 2:9e63099cca99 271 case SOL_AVANT:
Artiom 6:45f9cf44718a 272 fsol_avant=1;
Artiom 2:9e63099cca99 273 break;
Artiom 2:9e63099cca99 274
Artiom 2:9e63099cca99 275 case SOL_ARRIERE:
Artiom 6:45f9cf44718a 276 fsol_arriere=1;
Artiom 2:9e63099cca99 277 break;
Artiom 2:9e63099cca99 278
Artiom 2:9e63099cca99 279 case SOL_AVANT_RELACHE:
Artiom 7:553f3f1c2c53 280 fsol_avant_relache=1;
Artiom 2:9e63099cca99 281 break;
Artiom 2:9e63099cca99 282
Artiom 2:9e63099cca99 283 case SOL_ARRIERE_RELACHE:
Artiom 7:553f3f1c2c53 284 fsol_arriere_relache=1;
Artiom 0:bc74da1c502f 285 break;
Artiom 12:191486ba5118 286
Artiom 31:29500874c1cc 287
Artiom 32:e9947815c4d7 288
Artiom 12:191486ba5118 289 case ARRIERE_RELACHE:
Artiom 12:191486ba5118 290 farriere_relache=1;
Artiom 12:191486ba5118 291 break;
Artiom 14:b1abd2f6df75 292 case RECROQUEVILLER:
Artiom 14:b1abd2f6df75 293 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 14:b1abd2f6df75 294 recroqueviller_avant();
Artiom 14:b1abd2f6df75 295 recroqueviller_arriere();
Artiom 14:b1abd2f6df75 296 verification();
Artiom 14:b1abd2f6df75 297 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 14:b1abd2f6df75 298 break;
Artiom 13:9e19048eb065 299
Artiom 31:29500874c1cc 300 case VENTOUSE_AV_CENTRE_BALANCE:
Artiom 31:29500874c1cc 301 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 31:29500874c1cc 302 goldenium_avant();
Artiom 31:29500874c1cc 303 verification();
Artiom 31:29500874c1cc 304 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 31:29500874c1cc 305 break;
Artiom 31:29500874c1cc 306
Artiom 20:42f8ec726ac8 307 case VENTOUSE_AR_CENTRE_BALANCE:
Artiom 20:42f8ec726ac8 308 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 20:42f8ec726ac8 309 goldenium_arriere();
Artiom 20:42f8ec726ac8 310 positionControl(AR_poigne_D, 200,1,BLED_ON,3);//actionneur
Artiom 20:42f8ec726ac8 311 verification();
Artiom 20:42f8ec726ac8 312 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 20:42f8ec726ac8 313 break;
Artiom 32:e9947815c4d7 314
Artiom 31:29500874c1cc 315 case ACCELERATEUR_INSERTION_AVANT_GAUCHE:
Artiom 31:29500874c1cc 316 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 31:29500874c1cc 317 accelerateur_insertion_avant_gauche();
Artiom 31:29500874c1cc 318 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 31:29500874c1cc 319 break;
Artiom 32:e9947815c4d7 320
Artiom 35:04c3ad41064d 321 case ACCELERATEUR_INSERTION_ARRIERE_GAUCHE :
Artiom 31:29500874c1cc 322 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
Artiom 31:29500874c1cc 323 accelerateur_insertion_arriere_gauche();
Artiom 31:29500874c1cc 324 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
Artiom 31:29500874c1cc 325 break;
Artiom 0:bc74da1c502f 326
Artiom 0:bc74da1c502f 327 #endif
kyxstark 23:93a427b242ce 328
Artiom 0:bc74da1c502f 329 #ifdef ROBOT_BIG
kyxstark 38:9295a9721acb 330
kyxstark 38:9295a9721acb 331
kyxstark 21:edf6d03fdb20 332 case ASCENSEUR:
kyxstark 22:9e92a2b941ba 333 flag_ascenseur = msgRxBuffer[FIFO_lecture].data[0];
Artiom 0:bc74da1c502f 334 break;
Artiom 0:bc74da1c502f 335
Artiom 0:bc74da1c502f 336 #endif
Artiom 0:bc74da1c502f 337 }
Artiom 0:bc74da1c502f 338 FIFO_lecture=(FIFO_lecture+1)%SIZE_FIFO;
Artiom 0:bc74da1c502f 339
Artiom 0:bc74da1c502f 340 }
Artiom 4:4a79942713fa 341
Artiom 4:4a79942713fa 342
Artiom 4:4a79942713fa 343 }
Artiom 4:4a79942713fa 344
Artiom 4:4a79942713fa 345
Artiom 4:4a79942713fa 346
Artiom 11:6c11c081c855 347