Début de la partie microcontrôleurs 12 : Intro aux interruptions

Dans cette partie du tutoriel que nous allons parler des interruptions de travail utilisant le compteur par exemple. Interruptions améliorent l’utilisation de microcontrôleurs de manière énorme. Interruptions rendre vos programmes réagissent au matériel des microcontrôleurs, qui peut être une réaction du circuit à l’extérieur du microcontrôleur.

En termes de base, une interruption est exactement ce qu’il est indiqué comme. Elle interrompt un flux normal du programme en cours d’exécution pour exécuter une autre tâche (autre bloc de code que vous programmer). Supposons, par exemple votre programme fait normal LED clignotant et vous le voulez pour réagir à un capteur PIR (relié à une tige d’interruption) et va à un bloc de code spécial à faire un bip d’un vibreur relié à la broche un autre. Si vous dites que le microcontrôleur pour ce faire, elle s’arrête le programme mort et allez dans le code qui appartient à l’interruption (faire un bip). Après que interruption code est exécuté, le programme arrêté reprend précisément là où il était arrêté. Dans certains exemples, interruptions serait une alternative aux bureaux de vote, ce qui exigerait des cycles du programme. Dire que votre programme est de vouloir seulement un bip quand quelqu'un passe devant les capteurs PIR. Votre programme pourrait garder stable que la broche pour voir si il y a une concentration élevée de reprises au sein de la boucle sans fin (while (1)). Ou bien, supprimez tout le code de programme du scrutin afin de tester le code confidentiel d’une concentration élevée et permettre l’interruption de procéder automatiquement au code bip lorsque le microcontrôleur détecte la lecture élevée.

Quels types d’interruptions sont disponibles pour le Microcontrôleur AVR ? Interruptions peuvent être établies pour des événements tels que le nombre d’un compteur, une épingle changeant recevoir communication série État (de faible à élevé, ou vice versa) des informations, ou de l’analogique au numérique après avoir établi une conversion. Voici une liste de vecteurs d’interruption que vous pouvez utiliser. Autres tutoriels feront usage de bon nombre de ces vecteurs.

Nous allons utiliser le timer/compteur à titre d’exemple. Nous vous indiquerons le timer/compteur un nombre qui le TCNT1 (le compteur) devront correspondre. Le nombre de match ira dans un registre dénommé OCR1A (sortie comparer s’inscrire). Le « 1 » représente le compteur spécifique nous utilisons qui est la version 16 bits. Nous avons deux OCRs, le A et le B. On va utiliser A pour cet exemple. Mais nous ne savons pas si le compteur se remettra à zéro lorsque le match est fait ? Nous voulons certainement repartira ensuite le TCNT1 pour revenir à zéro si le décompte et nous obtenons un autre match à notre nombre prévu, mais cela n’est pas fait dans le code, comme nous l’avons fait la dernière fois (n’oubliez pas du TCNT1 = 0;). Cette fois, nous voulons activer un autre interrupteur dans le registre de contrôle TCCR1B appelé WGM12 (forme d’onde Mode génération de minuterie 1). Le #2 dans cet aiguillage représente juste quel WGM c’est, car il y a quelques. Nous aussi utilisera le CS10 et CS11 à nouveau pour définir le prescaling à 64 comme dans l’intro de minuteries vidéo.

Alors le temporisateur/compteur aurez besoin de savoir que nous avons l’intention d’utiliser la fonction d’interruption. Ceci est fait par le biais de la TIMSK (Timer/compteur Interrupt Mask Register). Il suffit d’actionner un interrupteur dans ce registre : le OCIE1A (sortie comparer A Match interrompre activer) commutateur. Une fois la numéro mis en la OCR1A est compensée par le compteur, le programme sera interrompu pour activer/désactiver la LED. Pour une interruption se produise, il faudra activer les interruptions globales « sei() », puis nous aurons besoin permettre l’interruption du timer/compteur, et enfin la routine de service d’interruption (ISR) devront être créées. La routine d’interruption du service est juste comme les fonctions qui ont été faites dans l’exemple de jeu de bouton. La routine d’interruption du service est juste un bloc de code en dehors de la routine principale et commence par ISR avec le vecteur dans la parenthèse "(vecteur)", permise par le bloc de code accolades "{Code}". Pour le timer/compteur (version 16-bit) et le fait que nous utilisons la version A de l’OCR1, le nom de vecteur est : TIMER1_COMPA_vect. La routine serait donc : ISR(TIMER1_COMPA_vect) {code à exécuter}. Nous avons utilisé un certain nombre dans l’intro de la vidéo de minuteries qui représentait une seconde : 15625, donc nous allons utiliser celui-ci pour le OCR1A. Mais le nombre devrait envisager d’indexation à partir de 0, donc nous aurons besoin d’utiliser le numéro 15624 plutôt.

Articles Liés

Début de la partie microcontrôleurs 8: Ajout d’un bouton au microcontrôleur et rendant Do Something

Début de la partie microcontrôleurs 8: Ajout d’un bouton au microcontrôleur et rendant Do Something

Un moyen très simple et facile de prévoir l'interaction humaine avec le microcontrôleur est d'insérer un bouton dans le circuit. Nous communiquons avec les ordinateurs à l'aide de deux principaux dispositifs d'entrée : la souris et le clavier. Un cla
Comment pour commencer avec PICAXE 08 M microcontrôleur

Comment pour commencer avec PICAXE 08 M microcontrôleur

il s'agit d'instructable pour savoir comment débuter avec PICAXE 08M microcontrôleur.Pour commencer, vous devez :-08 M Protoboard ou même genre de bord (peut être fait maison)-UN LED-AXE027 Câble USB-Alimentation 3VÉtape 1: Connectez la led à la born
Quel microcontrôleur pour votre mode électronique ?

Quel microcontrôleur pour votre mode électronique ?

Ce qui la mode manque ? « Microcontrôleurs » je réponds toujours - et c'est vrai ! Il rend vos vêtements tellement plus intéressant, interactif et communicatif, dès que vous y ajoutez quelques renseignement.Mais ceux qui sont sur le marché ?J'ai comm
Début microcontrôleurs partie 9: Bouton et logiciel Debouncing des méthodes

Début microcontrôleurs partie 9: Bouton et logiciel Debouncing des méthodes

Dans cette partie du tutoriel, nous allons discuter le bouton et le logiciel debouncing.Nous voulons étudier le bouton debouncing premier et en détail, donc nous avons une bonne compréhension de ce qu'elle implique. Bouton debouncing est important et
Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Début microcontrôleurs partie 2: Création d’une Interface SPI du programmateur au microcontrôleur

Bonjour, nous espérons que vous avez apprécié la partie 1 de début de microcontrôleurs. Nous allons avancer dans la partie 2 et de commencer à parler sur les interfaces et comment obtenir votre microcontrôleur pour communiquer avec un ordinateur.Donc
Début microcontrôleurs partie 6: Écrit le premier programme à tour sur une LED

Début microcontrôleurs partie 6: Écrit le premier programme à tour sur une LED

Je sais que vous êtes prêt à écrire le premier programme. Vous avez visité par beaucoup jusqu'à présent ! Alors que nous sommes sur le sujet, récapitulons les événements. Vous avez sortit et le microcontrôleur Atmel AVR de votre choix. J'ai choisi th
Partie de microcontrôleurs de début 11 : Horloges, compteurs et l’horloge de microcontrôleur

Partie de microcontrôleurs de début 11 : Horloges, compteurs et l’horloge de microcontrôleur

Temporisations et compteurs sont donc essentiels que vous verrez de nombreux exemples impliquant tout au long de cette série. Comme son nom l'indique, minuteries sont utilisés pour le temps et le comptage. Comptage et le calendrier vous permet de fai
Début microcontrôleurs partie 3: Transfert d’un programme dans le microcontrôleur (pilotes)

Début microcontrôleurs partie 3: Transfert d’un programme dans le microcontrôleur (pilotes)

Bienvenue à la partie 3. Il s'agit d'un petit tutoriel qui traitera simplement chargement des pilotes pour s'assurer que votre programmeur puisse communiquer avec votre ordinateur correctement.Veuillez noter que parfois les appareils TinyISP et USBAV
Début microcontrôleurs partie 5: Essais le programmeur et la construction du premier Circuit

Début microcontrôleurs partie 5: Essais le programmeur et la construction du premier Circuit

Jusqu'à présent, vous devriez avoir tous les logiciels installés et construit l'interface qui assurera une liaison commode du programmateur pour les microcontrôleurs (MCU). Pour l'étape suivante, vous aurez besoin une maquette (ceux avec les nombres
Début microcontrôleurs partie 7: Réviser le premier programme de faire le clignotement de la LED

Début microcontrôleurs partie 7: Réviser le premier programme de faire le clignotement de la LED

Vous avez écrit le premier programme qui allume une LED. Oui, c'était spectaculaire ! Eh bien, pas vraiment, mais nous allons introduire un peu de folie à la LED. Nous allons donner une personnalité « bipolaire » en faisant clignoter. Puis nous allon
Début microcontrôleurs partie 4: Installation de l’environnement de programmation (WinAVR)

Début microcontrôleurs partie 4: Installation de l’environnement de programmation (WinAVR)

Bienvenue à la prochaine étape de notre série. Nous allons introduire certains éléments de programmation base maintenant. Ce tutoriel est tout simplement sur l'installation de votre environnement de programmation. L'environnement de programmation que
Début microcontrôleurs partie 13 : Intro pour interfacer les LCD

Début microcontrôleurs partie 13 : Intro pour interfacer les LCD

Le microcontrôleur est une merveilleuse pièce de génie et il peut faire beaucoup de choses (avec l'aide de certaines émissions grande), mais c'est toujours une boîte noire opaque. Si vous voulez partager des informations ou vous montrer ce qu'il essa
Partir de microcontrôleurs partie 1

Partir de microcontrôleurs partie 1

C'est la première d'une longue lignée de tutoriels visant à fournir un guide débutants et tutoriel basé autour du microcontrôleur Atmel AVR Atmega32. Je vais montrer vous, par le biais de projets et d'exemples, comment programmer et assurent les fonc
Le monde part du microcontrôleur

Le monde part du microcontrôleur

Future électronique a une large gamme de microcontrôleurs. Il est conçu pour être utilisé pour les applications embarquées. Microcontrôleurs (parfois abrégé μc, uc ou MCU ) se consacrent un ordinateurs petit et low-cost en électronique qui est constr