Étape 4: logiciels
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 la capacité de port série asynchrone. 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 logiciel est vraiment assez simple car nous il suffit de cocher pour la saisie des données de l’USB et puis envoyez-le droite au port USB. Afin d’obtenir le débit maximal, nous avons mis l’oscillateur interne à 8-MHz. Init_Serial configure le port pour 115.2 kbaud et active le récepteur et l’émetteur pour l’opération asynchrone. Main_Loop interroge juste le drapeau d’interruption de récepteur qui obtient la valeur après la réception d’un octet. Si l’indicateur est défini, puis le gestionnaire de données est appelé pour lire l’octet et puis vérifiez si le tampon d’émission est disponible. Dans l’affirmative, puis il copie l’octet reçu dans le tampon d’émission pour la sortie. En réalité, les données sont chargées dans le registre de transmission et le PIC il charge automatiquement dans le registre à décalage sortie lorsqu’elle sera disponible. L’indicateur d’interruption de transmission sera la valeur si le registre de transmission est vide, même si le registre à décalage émission n’est pas vide. Dans cette application simple nous interroger la réception tant les drapeaux d’interruption transmit au lieu de réellement ce qui leur permet d’interrompre le logiciel. Si nous avons eu beaucoup plus de choses en cours, comme le temps de traitement des données, intensif nous voudrait mettre en place des gestionnaires d’interruption réelle. La routine de débordement est un gestionnaire d’erreur, juste au cas où nous obtenons plusieurs bits de données reçues avant que nous puissions lire le registre et effacer l’indicateur de l’interruption.