d’afficher du texte ASCII est fourni ; la taille de police étant de 8 pixels verticalement et 6
pixels horizontalement. Ce code source se trouve sur la forge. Il est associé à un fichier
d’entête
gldc.h
et une table de définitions de caractères
ascii.h
.
Ce code de pilotage fourni est composé de plusieurs fonctions de niveau hiérarchique
différent :
• Au niveau le plus bas on a une fonction d’écriture d’instruction ou de donnée dans
l’afficheur (une colonne de 8 pixels).
• Au niveau juste au dessus on trouve la fonction d’initialisation de l’afficheur et la
fonction de changement de position du pointeur de position d’affichage.
• Au niveau supérieur on trouve deux fonctions d’affichage d’un caractère unique et
deux fonctions d’affichage d’une chaine de caractères.
Comme les fonctions d’affichage exigent un temps processeur important et que l’œil humain
ne peut pas lire plus de cinq affichages par seconde, les fonctions d’affichage de haut niveau
doivent être appelées uniquement à faible fréquence, au maximum cinq fois par seconde. En
conséquence, le code de plus haut niveau est un affichage périodique sous interruption de
chaque ligne de l’afficheur ; interruption périodique déclenchée par un temporisateur affecté
spécialement à cette tâche.
N.B. : l’utilisation des fonctions d’affichage dans des fonctions d’interruptions ─ hormis
celle du temporisateur prévu pour cela ─ est totalement à proscrire car une fonction
d’interruption doit bloquer le processeur le moins longtemps possible (quelques
microsecondes tout au plus), alors que l’affichage d’une chaîne de caractères demande
plusieurs millisecondes.
Attention : la fonction d’affichage
write()
de
glcd.c
a une vitesse d’exécution
optimisée pour une compilation sans optimisation. Si on utilise une optimisation,
l’afficheur ne peut plus suivre et n’affiche pas correctement, à moins d’augmenter les
délais de la fonction
write()
.
6. Présentation du clavier géré par scrutation
6.1. Principe des claviers gérés par scrutation
Un clavier d’ordinateur est constitué de boutons poussoirs qui définissent des niveaux
logiques 0 ou 1 selon qu’ils sont pressés ou non. Ils pourraient être reliés à autant d’entrées
d’un contrôleur, mais il faudrait alors beaucoup d’entrées (plus de 100 dans le cas d’un clavier
de PC). Pour diminuer le nombre d’entrées nécessaires on utilise le principe de la scrutation
décrit ci-après.
On organise les touches en lignes et colonnes. Chaque touche relie un fil de ligne à un fil de
colonne (voir le schéma électrique ci-après). Pour connaître les touches pressées, on active les
lignes une à une (sorties µC), et pour chaque ligne active on lit la ou les touches de la ligne
pressées (entrées µC). Ainsi pour un clavier de 4 colonnes et 4 lignes (16 touches) on aura
besoin que de 4 sorties et 4 entrées. Le clavier sera entièrement scruté en 4 étapes successives.
Typiquement, pour assurer un bon fonctionnement on scrute les claviers à une fréquence
d’environ 100 Hz.