Cours:InfoS2 tdOutput : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 38 : Ligne 38 :
 
   {
 
   {
 
     PORTC ^= (1<<PC5);  // changer l'état de PC5
 
     PORTC ^= (1<<PC5);  // changer l'état de PC5
     _delay_ms(100);
+
     _delay_ms(500);
 
   }
 
   }
 
}
 
}
 
</source>
 
</source>
 
{{finAide}}
 
{{finAide}}
 +
 +
==Exercices==
 +
 +
Écrire les programmes qui répondent aux questions suivantes (indépendantes) :
 +
*Allumer les 2 leds en permanence
 +
*Répéter le cycle : leds allumées pendant 50ms, puis éteintes 500ms.
 +
*Changer l’état des leds toutes les 100ms.
 +
*Changer l’état des leds toutes les 100ms, en opposition.

Version du 27 janvier 2023 à 17:56

Exercice 1

2 leds sont connectées sur un attiny13.

l’une sur la broche 2(PB3), et l’autre sur la broche 6(PB1).

Registres

Compléter le tableau suivant avec le nom du registre utile et un code possible :

Broche Rôle Nom du registre ______________________exemple de code______________________
PB1 mettre en sortie
PB1 mettre la sortie à 1
PB3 mettre en sortie
PB3 mettre la sortie à 0
Bluebg.png
Aidesmall.png
À propos de cette image

Exemple :




Faire clignoter la led PC5


#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>

int main()
{
  DDRC |= (1<<PC5);     // broche PC5 en sortie
  while(1)
  {
    PORTC ^= (1<<PC5);  // changer l'état de PC5
    _delay_ms(500);
  }
}

Exercices

Écrire les programmes qui répondent aux questions suivantes (indépendantes) :

  • Allumer les 2 leds en permanence
  • Répéter le cycle : leds allumées pendant 50ms, puis éteintes 500ms.
  • Changer l’état des leds toutes les 100ms.
  • Changer l’état des leds toutes les 100ms, en opposition.