Bonjour!
Et on se retrouve avec un programme qui ne fonctionne que par des interruptions pour simplement lire un
bouton poussoir, là ou une bête scrutation fait tout aussi bien, et son auteur n'a toujours rien compris à la
façon de faire du "multi tâche" simplement avec un programme bien écrit.
Procéder par interruptions, c'est une habitude que j'ai prise avec MSP430 (pour ceux qui ne connaissent pas,
c'est un processeur à ultra-basse consommation). Il y a une horloge interne ultra basse fréquence (dans les
20 kHz) qui permet de mettre le processeur en veille. Une conséquence est qu'on réveille le processeur par
les interruptions, c'est fait pour. Il y a de petites règles à respecter pour que les interruptions ne se marchent
pas sur les lacets quand il en arrive une pendant qu'on en traite une autre, mais c'est finalement assez simple.
On a du multi-tâche implicite, et en étant le plus souvent en veille ultra-basse consommation (horloges
éteintes), c'est ce qui fait la différence entre un système dont la pile bouton 2032 dure 6 mois et un où elle
dure 10 ans. Travailler en polling pour un bouton demande un accès périodique explicite au port, donc
réenclenchement de l'horloge, attendre qu'elle soit stable, etc, donc beaucoup de complications pour un
bête système.
Comme dans tout système, il y a plusieurs approches avec afficionados et détracteurs. Et puis à chaque contexte
des solutions différentes. Bref, on ne peut pas dire que la solution 100% interruptions soit foncièrement mauvaise.
Pascal
-----