Arduino minuteur interrompt (2 / 6 étapes)

Étape 2: Structuration minuteur interrompt


Code d’installation minuterie se fait à l’intérieur de la fonction setup() de {} dans une esquisse de l’Arduino.

Le code pour configurer les interruptions de minuterie est un peu intimidant à regarder, mais il n’est pas réellement difficile.  J’ai assez beaucoup plus simplement copier le même morceau principal du code et changer le Prédiviseur et comparer le registre de correspondance pour définir la fréquence d’interruption correcte.

La structure principale de la configuration d’interruption ressemble à ceci :

Notez comment la valeur de OCR #A (la valeur de correspondance comparer) change pour chacune de ces configurations de minuterie.  Comme expliqué dans la dernière étape, il a été calculé selon l’équation suivante :

comparer le registre de correspondance = [16 000, 000Hz / (prescaler * désiré fréquence interrupt)] - 1
n’oubliez pas que lorsque vous utilisez des minuteries 0 et 2 ce nombre doit être inférieure à 256 et inférieure à 65536 de timer1

Notez également comment les configurations entre les trois minuteries diffèrent légèrement dans la ligne qui active le mode de la CCT :
TCCR0A | = (1 << WGM01); //for timer0
TCCR1B | = (1 << WGM12); //for timer1
TCCR2A | = (1 << WGM21); //for timer2
Cela découle directement de la feuille de données de l’ATMEL 328/168.

Enfin, remarquez comment le programme d’installation pour les convertisseurs suit les tableaux dans la dernière étape (la table pour le timer 0 est répétée plus haut),
TCCR2B | = (1 << CS22) ;  Jeu CS #2 bit pour 64 Prédiviseur pour minuterie 2
TCCR1B | = (1 << CS11) ;  Jeu CS #1 bit pour 8 Prédiviseur pour minuterie 1
TCCR0B | = (1 << CS02) | (1 << CS00) ;  Définissez les bits de CS #2 et CS #0 pour 1024 Prédiviseur pour le timer 0

Remarquez dans la dernière étape qu’il existe différents prescaling des options pour les temporisations différentes.  Par exemple, timer2 n’a pas l’option de 1024 Prédiviseur.

Les commandes à exécuter au cours de ces interruptions de minuterie sont trouvent dans le sketch Arduino encapsulé dans ce qui suit :
ISR(TIMER0_COMPA_vect) {//change 0 à 1 pour timer1 et 2 pour timer2
Interrupt commandes ici
}
Ce morceau de code doit être placé en dehors des fonctions setup() et loop().  Aussi, essayez de garder la routine d’interruption aussi courte que possible, surtout si vous êtes interrompu à une fréquence élevée.  Il peut même être utile abordant les ports/broches de la puce ATMEL directement au lieu d’utiliser les fonctions digitalWrite() et digitalRead().  Vous pouvez trouver plus d’infos sur ce ici.

Exemple-l’esquisse suivante configure et exécute 3 interruptions de minuterie :

Les images ci-dessus montrent les résultats de ces interruptions de minuterie.  Fig. 1 montre une onde carrée oscillant entre 0 et 5 v à 1kHz (interruption timer0), Fig. 2 montre la LED attachée à la broche 13 allumer pendant une seconde puis éteindre pendant une seconde (timer1 interrupt), Fig. 3 montre une onde de pouls, oscillant entre 0 et 5V à une fréquence de 4khz (timer2 interrupt).

Articles Liés

Minuteur interrompt sur la DP32

Minuteur interrompt sur la DP32

Minuteries ! Je suis très heureux d'enfin être couvrant des minuteries sur ma planche favorite, le DP32!N'oubliez pas de façon à l'époque où j'ai écrit sur les interruptions externes ? Si vous n'êtes pas familier avec les interruptions et comment ils
Construire votre propre contrôleur (bon marché!) multifonctions sans fil caméra.

Construire votre propre contrôleur (bon marché!) multifonctions sans fil caméra.

IntroductionJamais imaginé de construire votre propre contrôleur de caméra ?Remarque importante : Les condensateurs pour le MAX619 sont 470n ou 0.47u.  Le schéma est correct, mais la liste des composants a été mal - mise à jour.Il s'agit d'une entrée
Switcher de son

Switcher de son

Avez-vous déjà eu votre musique coudés au travail et ne savais pas que quelqu'un a essayé de te parler.  Pire encore, avez-vous jamais eu envie de dormir au travail, mais n'avait pas une bonne façon de se réveiller si quelqu'un (comme votre patron) s
Faire un minuteur Arduino

Faire un minuteur Arduino

Hi, donc mon copain et moi mettons en place afin que nous fassions PCB´s. Actuellement, nous faisons une boîte d'exposition UV (éventuellement un autre instrucable), et pour cette zone, nous avions besoin d'une minuterie, donc c'est ce que nous avons
Minuteur de cuisine en utilisant un Arduino

Minuteur de cuisine en utilisant un Arduino

Si vous aimez cuisiner et avez l'habitude de laisser la gazinière sur trop longtemps, cela pourrait être un problème grave parce que personne n'aime les aliments brûlés. Pour résoudre ce problème, que je vais vous montrer comment construire votre pro
Audio stéréo avec Arduino

Audio stéréo avec Arduino

Récemment j'ai été annonce beaucoup de projets qui utilisent un 8 bits échelle de résistanceconvertisseur numérique analogique (DAC) et un Arduino à faire sonner. (voir la boîte d'effets vocaux Arduino, l'échantillonneur de tambour Arduino et mon tut
Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Ventilateur t/mn avec capteur à effet hall interne et Arduino (Intro à interrompre la matériel et écran LCD)

Pour mon autre projet pour le travail, j'ai dû mesurer la vitesse de rotation du rotor en révolutions par Minute (tr/min) d'un ventilateur d'ordinateur mis à jour le. Il avait trois fils qui sortent et qui fait TIC TAC moi que peut-être qu'il a un mo
Minuterie de cuisine Arduino avec une introduction aux interruptions de minuterie

Minuterie de cuisine Arduino avec une introduction aux interruptions de minuterie

Bienvenue sur mon premier instructable,J'ai décidé de faire un projet assez simple d'entrer dans le monde instructable. Ce projet consiste à faire une minuterie de cuisine simple avec un Arduino Uno. Donc je vais donner une petite introduction à l'éc
Arduino à rebours avec les boutons de réglage

Arduino à rebours avec les boutons de réglage

Dans ce guide de Instructables, je vais vous montrer comment faire votre propre compte à rebours Arduino deux chiffres. J'ai fait mon propre circuit en utilisant le microcontrôleur ATmega328 mais il s'agit d'une étape facultative. Dans ce guide je va
CO2 Laser eau Flow Monitor - Arduino alimenté / Windows contrôlée

CO2 Laser eau Flow Monitor - Arduino alimenté / Windows contrôlée

Alarme et CO2 Laser eau Flow MonitorPropulsé par un Arduino et contrôlées par un logiciel personnalisé sur un PC WindowsAfin de prolonger la vie d'un CO2 tube de laser, il est nécessaire à pomper l'eau à travers elle de refroidissement pendant son fo
Arduino personnalisé MIDI Controller

Arduino personnalisé MIDI Controller

Bonjour et Bienvenue à cette instructable sur comment construire un contrôleur MIDI USB personnalisé, bon marché et facile, basé sur Arduino. Les meilleures nouvelles : aucun souci avec interfaces USB-MIDI ou outils logiciels tels que MIDI sans poil,
Une maison de Smart Wireless (était : simulateur de maison et alarme avec Arduino ou Atmega328 (mise à jour de mai 2016))

Une maison de Smart Wireless (était : simulateur de maison et alarme avec Arduino ou Atmega328 (mise à jour de mai 2016))

Note : là maintenant est un android bluetooth control app ibble pour ce projetRemarque : Bien que cela a commencé comme un projet de simulation de ma présence à la maison, il a grandi dans une maison intelligente, c'est pourquoi j'ai rebaptisé cet In
Minuterie de compte à rebours Arduino simple 7 segment

Minuterie de compte à rebours Arduino simple 7 segment

Dans ce guide de Instructables, je vais vous montrer comment faire un compte à rebours - à deux chiffres - simple en utilisant la carte de Arduino uno et affichages à 7 segments.Nous serons en mesure de régler la minuterie dans notre esquisse de prog
Raspberry Pi et Arduino : construire des systèmes fiables avec les minuteries de chien de garde

Raspberry Pi et Arduino : construire des systèmes fiables avec les minuteries de chien de garde

Résumé : Dans ce Instructable, nous examinons comment construire des systèmes informatiques plus fiables à l'aide de minuteurs de chien de garde. Nous montrons comment configurer et utiliser le Raspberry Pi et minuteries de chien de garde interne Ard