Bonjour,
Apres avoir joué un peu avec un pic18F4550 en assembleur, je m'y suis remis l'autre jour et j'essaye de faire ca en C.
J'ai fait un truc avec trois boucles imbriquées qui allument progressivement une led en éteignant l'autre.
-level est le niveau de luminosité de la led sur LEDPin1 (et l'inverse du niveau de celle sur LEDPin2)
-delay est le "temps" que chaque niveau est maintenue
-i est la boucle pour le pwm refait à la main
Dans le debugger, ca fonctionne. Dans le pic, ca fonctionne aussi. Par contre, si j'essaye de remplacer la boucle delay pour la faire aller au dela de 127, ca fonctionne dans le debugger mais on reste au meme niveau de luminosité (led 1 a fon, led 2 etteinte) quand on mets ca sur le pic.
J'ai essayé de déclarer delay en unsigned char, en int, unsigned int, j'ai le meme résultat
Une idée ?
La ligne commentée permet de vérifier qu'on ne sort pas de la boucle delay si on va de 110 a 130 au lieu de 10 à 30.Code:unsigned char i; unsigned char delay; unsigned char level; LED1Tris = 0; LED2Tris = 0; LED1Pin = 0; LED2Pin = 0; while(1) { for(level = 0; level < 16; level++) { for (delay = 10; delay < 30; delay++) { for(i = 0; i < 15; i++) { if ( i < level) { LED1Pin = 1; LED2Pin = 0; } else { LED1Pin = 0; LED2Pin = 1; } } } //LED2Pin = ~LED2Pin; } }
Merci,
Jaune.
-----