====== Temporisation avec delay.h ====== La librairie **delay** permet de créer des tempos facilement grâce à une boucle programme. \\ **Avantage** : Très facile à utiliser\\ **Inconvénient** : Pendant la tempo, le micro est bloqué dans sa boucle est ne peut rien faire d'autre. ===== Exemple Chenillard ===== #define F_CPU 1000000UL //Fréquence de fonctionnement 1Mhz #include #include int main (void) { int i; //Déclaration d'une variable i DDRB = 0xFF; //Met le port B en sortie while(1) { for(i=1; i<=0x80; i<<=1) { PORTB = i; _delay_ms (250); //Tempo de 250ms } } return 1; } #define F_CPU 1000000UL //Fréquence de fonctionnement 1Mhz F_CPU, la fréquence de fonctionnement de votre microcontrôleur est défini en Hertz et est déclaré **avant** #include qui l'utilise. #include On inclue la librairie delay. int i; //Déclaration d'une variable i On déclare la variable i avant la boucle for, pas dedans. for(i=1; i<=0x80; i<<=1) On décale un 1 sur le port B jusqu'à atteindre le dernier bit (0x80) _delay_ms (250); //Tempo de 250ms Vous pouvez aussi utiliser la fonction _delay_us pour faire une tempo en µs\\ La durée max de la tempo est de 262.15ms/F_CPU en Mhz pour la fonction _delay_ms et 768us/F_CPU en Mhz pour la fonction _delay_us. \\ Rien ne vous empêche de faire une boucle for qui s'exécute x fois pour faire une tempo plus longue.\\ Vérifiez aussi que la boucle for n'utilise pas plus de mémoire programme que plusieurs delay à la suite les uns des autres.