Étape 4: Conclusion
J’espère que vous trouverez ce code utile pour votre prochain projet qui utilise un encodeur rotatif ou qu’il vous a inspiré à envisager un encodeur rotatif comme une entrée pour votre prochain projet.
Résumé des objectifs
J’ai essayé d’écrire du code qui permet d’obtenir un bon compromis entre :
- Portabilité (code de manipulation de port est le compromis lors du déplacement d’autres puces)
- Vitesse (manipulation de port aide vraiment)
- Compilé de faible taille du code (port favorise la manipulation et bitmath)
- Enregistre avec fiabilité lente rotation manuelle rapide
- Réduit les appels de routine futile interrupt service (à l’aide de hausse des interruptions et désactiver temporairement les interruptions)
Mises en garde et idées d’amélioration
Ce code n’est pas parfait par tous les moyens et vous aimeriez changer pour utiliser d’autres épingles. J’ai testé ce code avec le croquis qui causait le plus de retard et moins fiables lectures avec les autres approches examinées - je l’ai certainement n’ai pas comparé avec minuteries à voir dont le code produit moins routines de service d’interruption inopérant, prend le minimum de temps à s’exécuter et filtre dehors le pourcentage le plus élevé de contact rebonds. Quelqu'un pourrait peut-être comme faire un test contre les autres approches là-bas.