etatledG2 = analogRead(ledG2); //Lecture de la valeurs du capteur
etatledG1 = analogRead(ledG1); //Lecture de la valeurs du capteur
etatledCG = analogRead(ledCG); //Lecture de la valeurs du capteur
etatledCD = analogRead(ledCD); //Lecture de la valeurs du capteur
etatledD2 = analogRead(ledD2); //Lecture de la valeurs du capteur
etatledD1 = analogRead(ledD1); //Lecture de la valeurs du capteur
// Stop si pas de ligne
if(etatledG2 > ligne && etatledG1 > ligne && etatledCG > ligne && etatledCD > ligne && etatledD2 > ligne && etatledD1 > ligne)
// Si les capteurs ne voient rien, les moteurs restent a l'arret
{
VMG == 0;
VMD == 0;
}
analogWrite(MG,VMG);
analogWrite(MD,VMD);
Le mode debug de AVR Studio permet de voir l'avancement du programme en comptant le nombre de cycle utilisé en même temps.
Par contre, c'est un peu chaotique pour le rendre compatible avec les sketchs de l'IDE arduino.
D'un autre côté, avec un code de ce type qui utilise intensivement la fonction analogRead, le temps d'exécution sera très majoritairement influencé par le temps qu'il faut attendre pour que le convertisseur finisse sont travail (puisque cette fonction est bloquante), le reste étant pratiquement négligeable.
Exemple : avec une horloge ADC configurée à 125 kHz (valeur par défaut sur arduino), il faut 13 cycles pour effectuer une seule conversion, donc tconv = (1/125000)*13 ? 104 µs. Il y a 6 conversions à la suite, soit t ? 624 µs. À côté de ça, les instructions CPU qui s'effectuent en 0,0625 µs, c'est peanuts.
Donc, puisque la question était de « savoir a peut pres combien de temps met la carte a effectuer une boucle », sauf erreur de calcul de ma part, je dirais entre 650 et 700 micro-secondes.