Systèmes embarqués et firmware
On souhaite basculer, à chaque exécution, entre allumage et extinction le bit d'une broche de sortie reliée à une LED. Quelle écriture C est correcte ?
- Aport |= (1 << 5);
- Bport ^= (1 << 5);
- Cport &= ~(1 << 5);
Afficher la réponse et l'explication
Réponse : B. port ^= (1 << 5);
Avec le OU exclusif (XOR, ^), un XOR avec 1 inverse le bit et un XOR avec 0 le laisse inchangé. Ainsi, chaque exécution de « port ^= (1 << 5) » fait basculer uniquement le bit 5 entre 0 et 1. On l'utilise souvent pour faire clignoter une LED. Certains microcontrôleurs disposent d'un registre dédié permettant d'inverser un bit par simple écriture.
Continuer : 9 autres questions sur Systèmes embarqués et firmware