Étape 4: Le programme
Le programme a été maintenu en simple pour le rendre facile à comprendre. Expressions booléennes rares ont été utilisées comme ils prennent beaucoup de compréhension et de « travailler » en ce qui concerne les résultats de l’instruction.Nous notons qu’un programme plus simple a été écrit en « C » et il n’a pas pu compiler dans les emplacements de mémoire 1024, donc je ne sais pas comment l’inefficacité de plus haut niveau de programmation porterait sur ce projet.
En tout cas, nous avons utilisé les 35 instructions qui viennent avec la puce, et cela, recherche de pannes très facile comme vous le savez que la faille réside dans le code que vous avez généré.
Aussi longtemps que vous introduisez seulement une petite quantité de code à la fois, vous pourrez faire progressivement un programme jusqu'à-et-opérationnel.
La caractéristique intéressante du programme est la synchronisation globale. Le micro est compter en arrière-plan via timer1 et il s’agit de deux fichiers (registres) capables de compter jusqu'à 65 536. Un diviseur a été ajouté pour augmenter le décompte à 524 288. Il s’agit d’environ une demi-seconde.
Lorsque la minuterie déborde, l’exécution du programme est interrompue et le micro va à emplacement 4 (appelé l’emplacement d’interruption si elle constate une instruction d’aller à un sous-programme appelé: « ISR ». À l’isr, un autre fichier est décrémenté (_20Secs) trente - neuf fois et cela engendre la durée 20 secondes pour chaque jeu.
(Point à retenir : Timer0 ne produit pas un long délai, donc Timer1 doit être utilisé).
Les boutons sont détectés par le 100n de charge et en attente de 20mS pour voir si le condensateur est déchargé. Nous savons que la PAC se déchargent en moins de 8 ms, si un bouton est enfoncé.
Le programme sait maintenant si un bouton est enfoncé ou non.
Il fait un second passage, si un bouton est enfoncé, pour déterminer quel bouton a été enfoncé.
Le premier bouton se déchargera le cap en moins de 2 ms, le deuxième bouton se déchargera le cap en moins de 4 ms et le troisième bouton se déchargera le cap en moins de 8 ms.
Le programme effectue ensuite une boucle de 1mS, cherchez un peu sur l’axe de détection.
Il sortira avec une valeur de 1 à 8.
La décrémente de maintenant programme le fichier comte et et si c’est zéro après un ou deux décrémente, bouton 1 ait été enfoncé. Il continue avec décrémente jusqu'à ce qu’il trouve le bouton.