Cours:TDs 2103 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m (Rappel de la documentation du timer 0)
m (Rappel de la documentation du shield utilisé)
Ligne 29 : Ligne 29 :
 
|}
 
|}
 
Seule la ligne correspondant à '''l'Arduino UNO''' nous intéresse dans la suite.
 
Seule la ligne correspondant à '''l'Arduino UNO''' nous intéresse dans la suite.
 +
 +
==Exercice 1==
 +
1°) Sans chercher à comprendre l'algorithme de division, on vous demande de le transformer en une fonction unsigned int div10(unsigned int A);
 +
===Indication===
 +
<source lang=c>
 +
 +
unsigned int div10(unsigned int A){ // a compléter ICI : ceci a été réalisé en TD !!!}
 +
</source>
 +
2°) Les LEDs du shield maison sont couplées à un arduino UNO. Écrire un sous-programme capable d'afficher un nombre sur 8 bits sur les LEDs. Réaliser un programme de test.
 +
===Indication===
 +
<source lang="c">
 +
void afficheLeds(unsigned char ch){
 +
  // A compléter ici. On n'utilisera que des décalages
 +
  //et des masques pour réaliser cette fonction
 +
}
 +
</source>
 +
 +
3°) Écrire un programme complet qui mesure le temps d'exécution du sous programme de division par 10, puis modifier le programme pour qu'il puisse comparer avec une division par 10 normale.

Version du 6 octobre 2014 à 09:44

Nous allons mettre dans cette série de TDs un ensemble de travaux réalisés en groupes de TD mais en salle informatique.

Initiation au timer 0

Notre objectif est de reprendre un exercice de TD et de le réaliser de manière plus complète.

Rappel de la documentation du timer 0

La documentation officielle du timer 0 fait 10 pages. Nous utilisons quant à nous une série de dessins résumant le fonctionnement de certaines parties.

Voici un premier dessin :

Documentation du timer 0 de l'ATMega328

Rappel de la documentation du shield utilisé

Puisque nous allons utiliser les LEDs pour afficher une valeur binaire sur 8 bits, voici la documentation correspondante :

Numéro f5 f4 f3 f2 f1 f0 p1 p0
Couleur r o v r o v v r
Arduino Pin 13 12 11 10 9 8 7 6
Port Arduino UNO PB5 PB4 PB3 PB2 PB1 PB0 PD7 PD6
Port Arduino LEONARDO PC7 PD6 PB7 PB6 PB5 PB4 PE6 PD7

Seule la ligne correspondant à l'Arduino UNO nous intéresse dans la suite.

Exercice 1

1°) Sans chercher à comprendre l'algorithme de division, on vous demande de le transformer en une fonction unsigned int div10(unsigned int A);

Indication

unsigned int div10(unsigned int A){	// a compléter ICI : ceci a été réalisé en TD !!!}

2°) Les LEDs du shield maison sont couplées à un arduino UNO. Écrire un sous-programme capable d'afficher un nombre sur 8 bits sur les LEDs. Réaliser un programme de test.

Indication

void afficheLeds(unsigned char ch){
  // A compléter ici. On n'utilisera que des décalages 
  //et des masques pour réaliser cette fonction
}

3°) Écrire un programme complet qui mesure le temps d'exécution du sous programme de division par 10, puis modifier le programme pour qu'il puisse comparer avec une division par 10 normale.