External interrompt sur partie MPIDE 1: attachInterrupt() (7 / 11 étapes)

Étape 7: Service Interruipt Routine

Comme je l’ai mentionné dans l’étape précédente, nous avons mis notre Interrupt Service Routine ou ISR à notre fonction de LEDchange(). Cette fonction peut être tout ce que vous voulez, mais les interruptions sont des choses très capricieux, alors il y a un couple de lignes directrices, que vous aurez envie de suivre.

Tout d’abord, rapports de recherche internationale doivent s’exécuter rapidement. Revenons à notre exemple de salle de classe. Lorsque le professeur appel à vous pour votre question, que se passe-t-il si vous commencé à avoir une longue conversation avec le professeur ? Il serait totalement perturber la classe, et le professeur ne serait pas en mesure de revenir à sa conférence pour le finir avant la fin de classe. Au contraire, vous essayez de faire votre question très courte, et votre professeur essaye de vous donner une réponse concise. Il en va de même pour les interruptions. Elles interrompent le flux du programme normal, alors vous aurez envie de revenir à cela dès que possible.

N’UTILISEZ JAMAIS DELAY() DANS UNE RÉGION DÉSIGNÉE. En général, la fonction delay() est considéré comme programmation bâclée. Fondamentalement, il gèle votre microcontrôleur pendant un certain temps. Pendant ce temps, aucun autre code ne peut s’exécuter (sauf pour les autres interruptions), et qui a perdu sur le plan fonctionnel de temps. Si vous utilisez delay() dans un rapport de recherche internationale, ce rapport de recherche internationale aura pour toujours, qui viole notre première règle. Il fond c’est propre avertissement, toutefois, car c’est un des outils fondamentaux que nouveaux programmeurs découvrent lors de leur tout premier programme de blink et peuvent facilement vous voyage vers le haut en entrant dans des sujets plus avancés comme les interruptions.

Cette dernière règle est plus d’une préférence personnelle qu’autre chose. J’ai entendu dire que parfois autres personnes ont des questions en essayant de manipuler les produits dans leur rapport de recherche internationale, comme allumer/éteindre LEDs. Généralement je pense que comme des processus lents, donc si possible j’essaie d’éviter de manipuler les sorties à l’intérieur de mes rapports de recherche internationale. C’est pourquoi nous utilisons la variable LEDstate pour définir l’état de nos LED, au lieu de définir directement. Cependant, les interruptions sont couramment utilisées lors de la communication avec les autres commissions et d’autres, ce n’est pas toujours pratique ou même possible pour empêcher la manipulation de sorties, donc ce n’est pas une règle dure et rapide. Utilisez votre meilleur jugement !

Articles Liés

External interrompt part MPIDE 2: setIntVector()

External interrompt part MPIDE 2: setIntVector()

Dans mon précédent I'ble je vous enseigne un moyen très simple d'obtenir des interruptions externes en cours d'exécution sur les DP32 uC32 et WF32 *. Interrompt, cependant, sont des choses vraiment compliquées et s'il est agréable d'avoir une fonctio
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
Appuyez sur monter en bois World Tree Lanterne en noyer

Appuyez sur monter en bois World Tree Lanterne en noyer

pour ma fête je voulais faire un projet sur la coupe au laser de la terre.  J'ai décidé de créer une lanterne en bois de noyer qui accepterait un cordon de pendentif snap clip disponible dans la plupart des quincailleries.  J'ai aussi expérimenté ave
Comment rechercher des fichiers sur Android comme un pro

Comment rechercher des fichiers sur Android comme un pro

Presque n'importe quelle application Android qui traite de nombreux fichiers dispose d'une option de recherche. Vous savez comment c'est - appuyez sur l'icône de loupe, tapez le mot de recherche et il va vous présenter les résultats. Pour la plupart
Hanter votre hotte sur un budget !

Hanter votre hotte sur un budget !

Salut! Je t'aime Halloween et habituellement je suis impliqué dans une attraction hantée quelque part. Cette année, j'ai décidé de simplement faire la maison affaire et avoir du plaisir de Halloween w la famille et les voisins. Malheureusement, en ra
Ratchet « Hyperflux Armor » Costume partie 2.1 : Clank

Ratchet « Hyperflux Armor » Costume partie 2.1 : Clank

Clank, plus que juste un « parlant lunch box », est le côté-coup de pied dans la série R et C.  Il est des queues, à Sonic... Samwise, à Frodon... HOOCH, à Turner (pour l'ensemble plus âgé).  Cependant, sans doute, Clank est aussi important pour la s
Cercle de bricolage carte lampe à partir de zéro

Cercle de bricolage carte lampe à partir de zéro

[Aperçu]Bonjour à tous ! Cette instructable vous guidera à travers quelques étapes pour créer ce (ou similaire) lampe de table. Modèle de la lampe est une image au microscope électronique d'une feuille. Les zones sombres de l'image se traduisent par
Bougie LED avec des parties lasercut

Bougie LED avec des parties lasercut

est cette instructable pour ma Bougie LED lasercut conception que l'on peut télécharger sur Thingiverse.  C'est un circuit électrique simple mais utile que vous apportez hors bande de bois et de cuivre (ou feuille de carton et aluminium - je vais vou
Burritos de boeuf mexicains - sur le grill

Burritos de boeuf mexicains - sur le grill

Recette vidéoDécouvrez l'ensemble du processus dans la vidéo intégrée !En ce qui concerne les épices frotter s'il vous plaît voir ci-dessous :1 x cuillère à soupe de Cumin 1 x cuillère à soupe de coriandre 1 x cuillère à café de cannelle 1 x cuillère
Équilibrage automatique de pendule à l’envers

Équilibrage automatique de pendule à l’envers

Il s'agit de ma tentative de la pendule inversé en équilibre sur une charrette à deux roues châssis. J'avait vu les autres ici et a été inspiré pour essayer ma propre version. L'Arduino est merveilleusement simple à programmer et vous pouvez le ramas
Système de contrôle de température à l’aide de Labview (Atmega32)

Système de contrôle de température à l’aide de Labview (Atmega32)

RÉSUMÉCet ouvrage décrit un cadre de ON/OFF, systèmes de contrôle de température proportionnelle et linéaire. La conception et la mise en œuvre de ce processus se fait à l'aide de LABVIEW, logiciel virtual workbench. Le projet comprend l'acquisition
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
Tutoriel d’assembleur AVR 3

Tutoriel d’assembleur AVR 3

Bienvenue au didacticiel numéro 3 !Avant que nous commencions, je tiens à faire un point philosophique. N'ayez pas peur d'expérimenter avec les circuits et le code que nous construisons dans ces tutoriels. Changer les câbles près, ajouter de nouveaux
En utilisant LabVIEW LINX et chipKIT WF32 pour contrôler une bande de LED

En utilisant LabVIEW LINX et chipKIT WF32 pour contrôler une bande de LED

Ce Instructable risque de dépasser les étapes impliquées dans le contrôle de la bande de LED WS2812 à l'aide de LabVIEW, LabVIEW MakerHub LINX et chipKIT WF32.Remarque : ce projet est possible grâce au LabVIEW physique informatique Kit qui contient d