1
Débuter / Re : Programmer le timer0 pour faire clignoter une led
« le: février 09, 2018, 08:24:37 pm »
Et bien merci beaucoup à vous deux
Le forum LOCODUINO est consacré aux discussions ayant trait à l'utilisation de l'Arduino dans les automatismes et les animations pour le train miniature. Nous avons eu récemment quelques inscriptions de personnes ayant des projets plus généraux mais surtout inapplicables au train miniature. Si votre projet ou vos questions ne concernent pas le modélisme ferroviaire, ne vous inscrivez pas, vous perdriez votre temps et nous aussi.
Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.
const byte RED = 5;
#define LedToggleRed digitalWrite (RED, !digitalRead(RED))
void setup() {
pinMode (RED, OUTPUT);
bitClear (TCCR0A, WGM00); // WGM00 = 0;
bitClear (TCCR0A, WGM01); // WGM01 = 0;
TCCR0B = 0b00000100; // Clock / 256 soit 16 micro-s et WGM02 = 0;
TIFR0 = 0b00000001; // Réinitialisation du flag TOV0
TCNT0 = 256 - 250; // Chargement du timer à 6
}
byte varCompteurRed = 0; // La variable compteur
void loop() {
if (bitRead (TIFR0, 0) == 1) { // Flag TOV mis à 1 ?
TCNT0 = 256 - 250; // Rechargement du timer à 6
bitSet(TIFR0, TOV0); // Remise à 0 du flag TOV0
if (varCompteurRed++ > 125){ // Incrémentation et a atteint 125 ?
varCompteurRed = 0; // On recommence un nouveau cycle
LedToggleRed; // Inversion de la Led rouge
}
}
}