Bonjour à tous,
Difficile de trouver un intitulé de post parlant. Bref je m'explique, pour certain ca paraitra surement très logique.
J'ai une fréquence de consigne (en sortie de mon PIC), si j'arrive à +/- 2% de cette consigne en entrée (fréquence issue de sondes HALL) j'incrémente ma fréquence de 5Hz. Pour faire ceci je fais un calcul de min de max et pour augmenter ma fréquence je passe par un tableau. C'est un tableau de 17 valeurs et j'incrémente une variable pour changer de valeur. Mon problème est le suivant : lorsque je rentre dans ma fourchette de fréquence au lieu de s'incrémenter de 1, ma valeur s'incrémente de 17!
En gros en consigne j'ai 25Hz, quand mes sondes arrivent à 25Hz je passe pas à 30 (soit une seule incrémentation) mais je passe à 80 85Hz ... avez vous un "test" qui vous vient à l'esprit pour bloquer cette incrémentation d'une seule unité? Parce que j'avoue bloquer. Voici mon code :
Voila si quelqu'un a une petite astuce pour faire un test afin que cette variable puisse s'incrémenter qu'une fois je suis preneur!Code:if ((i16PeriodeSondeTmr1 > i16FreqDiffMin) && (i16PeriodeSondeTmr1 <= i16FreqDiffMax)) { // Si la fréquence des sondes est comprise entre + ou - 2% de la fréq des commandes if(i8TabLancement < MAXI_TAB_LANCEMENT) { // Et si la variable d'incrémentation < 17 i16Freq =i16tValeurLancement[i8TabLancement++]; // On augmente la fréquence des commandes
Par ava,ce, merci.
-----