Étape 3: logiciel
Le lien du logiciel est répertorié ci-dessous. Alors qu’il est visé pour le 16F688, il est facilement porté à d’autres versions de la photo. Assurez-vous juste que vous choisissez celui qui a l’entrée de porte Timer1 (T1G) et une entrée d’interruption externe (INT ou EXT). Vous devrez également modifier la ligne qui identifie la version PIC (liste =) et le fichier INCLUDE, mais ceux sont les changements intuitives. La ligne __CONFIG devez également peaufiner tout simplement parce qu’un ou deux des étiquettes utilisées soient orthographiés différemment dans certains des fichiers INCLUDE.
Le gestionnaire d’interruption ici est un peu plus sophistiqué que celui utilisé dans l’épisode 2, non pas parce qu’il doit faire, mais parce qu’il montre comment vous pouvez gérer plusieurs sources d’interruption. Fondamentalement, vous juste vérifier pour voir quel drapeau interruption individuels a été ensemble, puis GOTO ce gestionnaire. Si plus d’un indicateur d’interruption a été défini vous pouvez vérifier de nouveau de l’intérieur du gestionnaire d’interruption ou tout simplement retourner de l’interruption. Si une autre interruption indicateur est encore défini, le gestionnaire d’interruption sera déclenchée automatiquement.
Comme indiqué dans l’en-tête du logiciel, le Module à ultrasons nécessite un 10us ou l’impulsion de déclenchement plus longtemps. Il faut ensuite jusqu'à 38ms pour l’impulsion de l’écho compléter, avec 38ms considérée comme une valeur « sans écho ». La routine de Ping envoie une impulsion de déclenchement des propos 14us et puis attend 50ms pour l’impulsion de l’écho. Il est prévu que l’interruption se produit au cours de ce délai. Le gestionnaire d’interruption juste enregistre la valeur de comptage du Timer 1 (tous les 16-bits) et puis efface la minuterie et le drapeau d’interruption externe. L’option Activer les interruptions générales (GIE) est réactivé automatiquement lorsque vous quittez le gestionnaire d’interruption. Le retard de 200ms dans le LCD_Loop est une valeur arbitraire qui limite les mises à jour de mesure de distance à environ 4 par seconde.
La portée effective des résultats Module ultrasons est une impulsion maximale d’environ 25 ms ou 168 pouce. Par souci de commodité, le logiciel a été limité à un maximum d’environ 98 pouces (3800 hex). Les facteurs de conversion pour les centimètres et en pouces sont notées dans l’en-tête de logiciel alors n’hésitez à modifier la routine de conversion pour étendre la plage Communicable ou modifier les unités de mesure.
L’écran affichera « xx pouces » à moins que la routine de conversion détermine que la distance est supérieure à la limite arbitraire de 98 pouces. Dans ce cas, il affichera « OUT OF RANGE ».
Eh bien, c’est tout pour l’épisode 3 de « Fun avec PIC Assemblée ». Restez à l’écoute des autres épisodes.