Interruptions de minuterie vous permettent d’exécuter une tâche à très spécifiquement à intervalles indépendamment de ce qui se passe dans votre code. Dans ce instructable je vais vous expliquer comment configurer et exécuter une interruption en clair Timer sur Match comparer ou Mode de la CCT. Passer directement à l’étape 2 Si vous cherchez des exemples de code.
Normalement lorsque vous écrivez un sketch Arduino que l’Arduino exécute toutes les commandes encapsulées dans la loop() {} function dans l’ordre dans lequel ils sont écrits, cependant, il est difficile aux événements de temps dans le loop(). Certaines commandes de prennent plus de temps que d’autres pour exécuter, certaines dépendent des instructions conditionnelles (if, while...) et certaines fonctions de la bibliothèque Arduino (comme digitalWrite ou analogRead) sont constituées de nombreuses commandes. Interruptions de minuterie Arduino permettent de suspendre momentanément la séquence normale des événements qui se déroulent dans la fonction loop() à précisément les intervalles, tandis que vous exécutez un ensemble distinct de commandes. Une fois que ces commandes sont faits l’Arduino ramasse encore une fois, où il était dans le loop().
Elles sont utiles pour :
Mesurer un signal entrant à intervalles espacés (fréquence d’échantillonnage constant)
Calculer le temps entre deux événements
Envoie un signal d’une fréquence spécifique
Vérification périodique pour les données entrantes de série
bien plus encore...
Il y a plusieurs façons de faire des interruptions, car maintenant je vais me concentrer sur le type que j’ai trouver la minuterie clairement plus utile/souple, appelé sur Match comparer ou Mode de la CCT. En outre, dans ce instructable je vais écrire spécifiquement sur les minuteries à l' Arduino Uno (et tout autre Arduino avec ATMEL 328/168... Lilypad, Duemilanove, Diecimila, Nano...). Les principales idées présentées ici s’appliquent à la Mega et les anciens conseils aussi bien, mais la configuration est un peu différente et le tableau ci-dessous est spécifique à ATMEL 328/168.