Salut, afin d'optimiser mes instructions I²C entre mon R-pi3 et des arduinos, j'ai recouru à une bidouille qui m'oblige, côté arduino à effectuer un traitement sur l'instruction reçue.
Ce traitement utilise des instructions "if" et "else if"... je pourrai aussi utiliser l'instruction "switch... case" pour un résultat identique.
Laquelle de ces deux instructions est la plus rapide ?
je met le bout de code en question au cas ou ça serait utile pour la réponse...
void loop() { int vitesseM1; int vitesseM2; if (dataReceived){ if(dataReceived < 32) { vitesseM1 = map(dataReceived, 0, 31, -60, -255); } else if(dataReceived == 32) { vitesseM1 = 0; } else if(dataReceived > 32 and dataReceived < 64) { vitesseM1 = map(dataReceived, 32, 63, 60, 255); } else if(dataReceived > 63 and dataReceived < 96) { vitesseM2 = map(dataReceived, 64, 95, -60, -255); } else if(dataReceived == 96) { vitesseM2 = 0; } else if(dataReceived > 96 and dataReceived <= 127) { vitesseM2 = map(dataReceived, 97, 127, 60, 255); } setVitesseMoteur1(vitesseM1); // definir une vitesse entre -255 et 255 pour le moteur 1 setVitesseMoteur2(vitesseM2); // definir une vitesse entre -255 et 255 pour le moteur 2 } }
merci d'avance pour vos réponses.
PS : je pense réduire le nombre de conditions en ne gardant qu'un moteur par arduino afin de résoudre le problème dû au manque de pins autorisant l'interruption hardware (PID).