Je trouve que ces petits PIC de base comme les PIC10F2xx et les PIC12F5xx sont parfait pour les petits projets écris en assembleur. J'aimes leur grande simplicité mais ça ne va pas sans inconvénients.
Le premier inconvénient celui qui m'a causé un bug lors du dévellopement de PocketSimon c'est la limitation de la pile des retours à 2 niveaux. Au départ j'avais écris display_count comme un procédure appellé par main. Je démarre le programme le POST exécute normalement le chase_led fonctionne je pèse sur un bouton et puis plus rien. Je regarde mon code, et je vois que display_count appelle la procédure light_led qui elle-même appelle led_gpio_table et led_tris_table. Woops! 3 niveaux d'appel alors que la pile des retours n'en supporte que 2.
La deuxième limitation c'est l'absence d'interruption. Avec une pile qui a seulement 2 niveaux on comprends que ce n'était pas possible d'inclure un système d'interruption. Mais une interruption sur expiration d'un TIMER c'est très pratique. Ça simplifit grandement la logique du code et surtout on peut faire travailler le MCU à autre chose pendant que le TIMER fait sont travail. Bien sur on peut aussi le faire sans interruption comme je l'ai fait dans mon projet lampe de poche programmable que je présenterai dans ce blog prochainement. Mais il faut s'assurer que la boucle complète s'exécute en moins de temps que le TIMER fait son cycle.
Mais on ne peut pas tout avoir, avec ces modèles de base on a une grande simplicité que personnellemnt j'aprécie.
Aucun commentaire:
Publier un commentaire
Remarque : Seuls les membres de ce blogue sont autorisés à publier des commentaires.