Cours:TDs 2103 : Différence entre versions
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.
Sommaire
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 :
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.