pour moi, avec les données que tu donnes, c'est normal.
Supposons que la température soit de 51°C. Donc, on peut ignorer les deux premiers if, puisque les tests sont faux.
Dans le 3ème, dans la boucle for, aucune température contenu dans le tableau fanLimits n'est égale à la température courante. Donc interval = true et on entre dans le if suivant.
Maintenant, je fais itération par itération dans la boucle for.
count = 1.
fanLimits[count] = fanLimits[1] = 52
hors, 52 > 51, donc le test dans le 1er if est faux, on va dans le else.
Dans le else, autre if, avec, cette fois-ci, la condition qui est vrai. On rentre donc dans le if. Tu initialises fanSpeed avec fanLevels[count - 1] = fanLevels[0] = 0.
Le break sort de la boucle for.
Tu retournes le fanSpeed trouvé, c'est à dire 0. Le ventilo s'arrete. C'est donc normal. L'erreur vient de ton algo.
[edit]
Je te ferais d'ailleur remarqué que le dernier if juste apres le else n'est pas nécessaire.
[/edit]
Edité par Francesco ( 09/11/2007 21:16:05 )Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)