Cours:DM clignotementLeds : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
 
Ligne 23 : Ligne 23 :
 
=Aide=
 
=Aide=
  
Plutôt que de faire d'avoir une boucle while(1) qui se répète toutes les 100ms on peut avoir une boucle plus rapide mais ne pas faire l'action à chaque itération :
+
Plutôt que d'avoir une boucle while(1) qui se répète toutes les 100ms on peut avoir une boucle plus rapide mais ne pas faire l'action à chaque itération :
  
 
{| class="wikitable"
 
{| class="wikitable"

Version actuelle datée du 31 janvier 2023 à 13:39

Modalités

  • travail à réaliser sur simulIDE
  • 1 seul fichier au format .zip à déposer sur Moodle contenant :
    • le schéma : fichier .sim1
    • le code : fichier .c ou .cpp
  • travail en binôme possible

Schéma

Créer un schéma comportant les éléments suivants :

  • un µcontrôleur attiny24
  • une led rouge reliée sur la broche PA0
  • une led verte reliée sur la broche PA3
  • une led jaune reliée sur la broche PB1

Comportement

On souhaite que les 3 leds clignotent en permanence à un rythme différent :

  • la led rouge change d'état toutes les 200ms
  • la led verte change d'état toutes les 500ms
  • la led jaune change d'état toutes les 600ms

Aide

Plutôt que d'avoir une boucle while(1) qui se répète toutes les 100ms on peut avoir une boucle plus rapide mais ne pas faire l'action à chaque itération :

int main()
{
  ...
  while(1)
  {
    action;
    _delay_ms(100);
  }
}
int main()
{
  uint8_t compteur=0;
  ...
  while(1)
  {
    compteur++;
    if (compteur==10)
    {
       action;
       compteur=0;
    }
    _delay_ms(10);
  }
}