Exercice : La surveillance
Nous travaillons avec une plate-forme matérielle constituée d'une unité centrale intégrant une carte de communication avec des dispositifs contrôleurs gérant différents capteurs.
Les données reçues de cette carte sont des suites de 16 bits constituées de :
8 bits identifiant la carte contrôleur,
4 bits identifiant le capteur géré par la carte,
4 informations de 1 bit.
Nous devons écrire une séquence qui prend en entrée cette donnée comme un unsigned short et afficher les 6 informations contenues.
Étudiez le code suivant et complétez les trous si nécessaire.
Notes :
Une constante hexadécimale est écrite en chiffres de 0 à F où F représente la valeur décimale 15 et la valeur 1111 en base 2. À chaque chiffre hexadécimal correspond un nombre binaire équivalent de 4 bits. La valeur 0xF0 est une constante hexadécimale de même valeur que le nombre binaire 11110000.
L'opérateur & est un opérateur bit à bit.
Le calcul du numControleur se fait en éliminant tous les 8 bits de poids faible en utilisant l'opérateur bit à bit & avec la constante 0xFF00 dont les 8 bits de poids faible sont nuls. Puis nous réalisons un décalage de 8 sur la droite pour éliminer ces 8 bits nuls.
Notons que les 8 décalages sur la droite sont suffisants pour obtenir le même résultat.