Systèmes embarqués et firmware
On veut effectuer un calcul de commande toutes les 1 ms. Quelle implémentation est la plus appropriée sur un microcontrôleur sans système d'exploitation ?
- ALever un drapeau par une interruption de temporisateur toutes les 1 ms, la boucle principale effectuant le calcul lorsqu'elle voit le drapeau
- BInsérer dans la boucle principale une boucle vide durant à peu près 1 ms pour créer l'intervalle
- CRedémarrer le microcontrôleur après chaque calcul
Afficher la réponse et l'explication
Réponse : A. Lever un drapeau par une interruption de temporisateur toutes les 1 ms, la boucle principale effectuant le calcul lorsqu'elle voit le drapeau
Une temporisation par boucle vide varie selon la durée des autres traitements et l'optimisation du compilateur, et manque de précision. Le temporisateur matériel compte précisément, indépendamment des traitements ; une interruption toutes les 1 ms comme référence maintient un intervalle constant. Un calcul court peut être effectué directement dans l'interruption, mais s'il est long, le signaler par un drapeau et l'effectuer dans la boucle principale évite de bloquer les autres interruptions.
Continuer : 9 autres questions sur Systèmes embarqués et firmware