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 faire des choses très soignés comme contrôle LED brights, degrés de l’angle du puits de servo, recevoir des données de capteur qui transmettent au PWM, en créant une minuterie ou simplement ajouter une variable de temps à votre projet de microcontrôleur.

Tout d’abord, il est important de comprendre qu’il existe une horloge à l’intérieur (ou extérieur) les microcontrôleurs AVR. Tous les microcontrôleurs ont des horloges en eux, ou utilisent une horloge externe. Microcontrôleurs nécessitent des horloges pour les programmes peuvent être exécutés en rythme avec l’horloge. Comme les programmes nous vous écrivons, car chaque battement d’horloge passe, les instructions sont traitées en temps avec les tiques de l’horloge.

Les fonctions timer et compteur dans le dénombrement de microcontrôleur en synchronisation avec l’horloge du microcontrôleur. Toutefois, le compteur ne compte jusqu'à 65535 (compteur 16 bits) ou 256 (compteur 8 bits). C’est bien loin des tiques 1 000 000 par seconde qui fournit le Microcontrôleur AVR standard. Le microcontrôleur offre une fonctionnalité très utile nommée prescaling. Prescaling est une manière simpliste pour le compteur d’ignorer un certain nombre de graduations. Les microcontrôleurs AVR permettent prescaling nombres de: 8, 64, 256 et 1024. Par exemple, si la valeur 64 sur le prescaler, le compteur comptera seulement chaque fois l’horloge tiques 64 fois. Cela signifie en une seconde (où le microcontrôleur clique sur 1 000 000 fois) le compteur compterait seulement jusqu'à 15 625. Si le compteur décompte progressif à ce nombre, alors vous seriez en mesure à clignoter une LED chaque une seconde.

Principalement, les minuteries ont un registre de contrôle et un registre qui contient le nombre. Le registre de contrôle contient certains commutateurs pour activer ou désactiver des fonctionnalités. Et vous l’aurez deviné... l’une des caractéristiques est que prescaling pour sélectionner. Le registre de contrôle est appelé TCCR0 ou TCCR1 (registre de contrôle Timer/compteur). Le TCCR0 est le registre de 8 bits de contrôle et seulement a un registre de contrôle de 8 bits, donc il n’y a seulement 8 interrupteurs pour allumer et éteindre. TCCR1 est de 16-bit, donc il a 16 commutateurs pour allumer et éteindre, mais il s’agit dans les deux registres de 8 bits marqués A et B (TCCR1A et TCCR1B). Les commutateurs sont comme suit : FOC (force sortie comparer), WGM (Mode de génération de forme d’onde), COM (comparer le Mode de sortie Match) et CS (sélectionnez horloge).

Le Registre qui contient le nombre est appelé le registre TCNT. Et il y a une version 8 bits (TCNT0) et une version 16 bits (TCNT1). Le TCNT1 Registre obtient en fait son numéro de deux autres registres de 8 bits pour créer un numéro complet de 16 bits, mais c’est tout fait dans les coulisses (abstraites), donc vous n’avez pas à vous soucier de comment le TCNT1 obtient cette capacité d’avoir 16-bit, il suffit de penser c’est magique.

Dans la vidéo, les deux programmes se sont révélés : celui qui montre juste un seul voyant clignotant à environ 1 seconde et un autre programme qui possède une rangée de 7 LEDs chassant chaque seconde et une autre rangée de 7 LEDs chassant chacune à 1 seconde. Ce dernier programme est montré ici car il a le plus de fonctionnalités utilisées avec la minuterie de 16 bits.

Sans être répétitif de messages précédents, le programme initialise les ports pour les LEDs et affecte au timer/compteur #1 (le temporisateur de 16 bits). Le registre de contrôle TCCR1B est utilisé pour définir le facteur prescaling 64 avec le CS10 et CS11 bascule.

Puisque nous voulons une des 7 LED pour chasser 1/7ème de seconde chacune, nous prenons le nombre 15 625 (1000000/64 - n’oubliez pas les 1000000 est l’horloge à 1 mhz du microcontrôleur) et le diviser par 7 pour obtenir ~ 2,232.143. Maintenant, vous dites, mais vous utilisez seulement 2232 dans le pogram!! C’est parce que TCNT1 n’acceptera que les entiers (pas de nombres décimaux). Maintenant que tu le dis, le timing sera inactif le montant après la virgule ! Vrai, mais l’horloge interne de l’AVR est +/-10 % inexacte de toute façon. Si un cristal externe est utilisé, vous pouvez utiliser un nombre parfait qui représente le nombre approprié.

Vous remarquerez que le TCNT1 est également remis à zéro manuellement. C’est passé le 2232 condition que va garder comptage en nécessaire dans le cas contraire le TCNT1 a été mis. Il y a les autres caractéristiques de contrôle qui a une mise à zéro automatique de ce nombre, mais nous aurons à celle dans un autre tutoriel. Les parties restantes du programme utilise des choses que nous avons appris dans les tutoriels précédents (pour allumer et éteindre LED et tableaux).

Articles Liés

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
Partie 1 ; avion de rc débutant (corps)

Partie 1 ; avion de rc débutant (corps)

Salut.Voici un corps avion simple et économique.Il m'a fallu seulement 15 minutes à mettre en place le corps.C'est plutôt petit. environ 14 pouces de long.Restez branchés pour la partie suivante (électronique).Étape 1: Ce que vous devez.Foamboard. Dé
Comment choisir un microcontrôleur

Comment choisir un microcontrôleur

il l'habitude d'être assez limitait le nombre de jetons de microcontrôleur différents disponibles pour les amateurs. Tu dois utiliser tout ce que vous arrivaient à acheter chez le marchand de puce de correspondance, et qui réduit le choix à un petit
5 raisons pourquoi vous êtes pas en mesure à programme A microcontrôleur

5 raisons pourquoi vous êtes pas en mesure à programme A microcontrôleur

quand à partir de microcontrôleurs, vous êtes susceptible de rencontrer quelques problèmes dans la programmation de votre microcontrôleur, et il n'y a rien de plus frustrant que de perdre des heures pour trouver le problème et toujours ne pas être en
Comment utiliser le contrôleur de Servo Actobotics

Comment utiliser le contrôleur de Servo Actobotics

Dans ce instructable je vous guidera dans l'utilisation du Contrôleur de Servo Actobotics. C'est un contrôleur de servo manuelle, ce qui signifie qu'il ne nécessite pas un apport par un ordinateur, le microcontrôleur ou autres pour exploiter les serv
Contrôleur de SNES USB

Contrôleur de SNES USB

premier instructable. Faites-moi savoir ce qu'il a besoin et fixe.Je n'ai fait le circuit ou le programme. Je fais juste un guide qui montre étape par étape comment faire le contrôleur USB SNES Assemblée. La page originale est ici :www.raphnet.net/El
Arduino solar charger contrôleur + sortie contrôle et enregistrement des données en ligne avec Xbee WiFi

Arduino solar charger contrôleur + sortie contrôle et enregistrement des données en ligne avec Xbee WiFi

A temps, j'ai commencé à travailler sur un contrôleur de charge solaire, elle était basée sur un microcontrôleur PIC, un 20 x affichage de 4 caractères et le code a été écrit en langage assembleur. Il n'a bien fonctionné et travaillait encore lorsque
Bibliothèque C pour contrôleur d’afficheur LCD HD44780

Bibliothèque C pour contrôleur d’afficheur LCD HD44780

Bonjour à tous,J'ai commencé à travailler avec des microcontrôleurs de Texas Instruments MSP430 valeur ligne. J'ai toujours plaisir à travailler avec Ardunio mais je peux ramasser un 16 bits TI MSP-EXp430G2 pour seulement 9,95 $.Texas Instruments est
Comment exécuter une batterie électrique horloge sur l’énergie solaire--partie I

Comment exécuter une batterie électrique horloge sur l’énergie solaire--partie I

Cette première partie montre comment une batterie classique électrique horloge peut être alimenté à l'aide d'un seul 2 volts de cellules solaires et d'un super condensateur. Dans certaines parties du monde, opération toute l'année est possible mais m
Peu coûteux Hard DDR/Stepmania Dance Pad contrôleur

Peu coûteux Hard DDR/Stepmania Dance Pad contrôleur

Je suis un grand fan de DDR comme une forme d'exercice et de jeu, mais depuis que de mousse pads et PS2 est morte, je n'ai pas joué pendant quelques années. J'ai pensé que si j'ai reçu le programme d'installation de Stepmania sur mon PC et construire
La réalisation d’une bête : WRT54G Mods, première partie

La réalisation d’une bête : WRT54G Mods, première partie

Le WRT54G est l'un des routeurs plus polyvalents ; ayant un prix bon marché et un tas de firmware alternatif pour elle.  On peut trouver les swap meets et magasin de seconde main partout aux États-Unis.  La peut être utilisé comme points d'accès, des
Contrôleur de température cuisinière Hack

Contrôleur de température cuisinière Hack

il s'agit d'un zéro Delta T percée de cuisson. Vous avez vu d'autres histoires Sous Vide, mais vous n'avez jamais vu quelque chose comme cela. Parce qu'il n'y a donc très peu à voir : presque tous les gadgets est éliminé.Pour le faire vous-même, vous
Contrôleur de SNES USB et lecteur flash

Contrôleur de SNES USB et lecteur flash

cette instructable décrira en détail comment je suis allé sur la modification d'un contrôleur de la SNES en contrôleur USB avec lecteur flash intégré.  Ce n'est pas une méthode très fantaisie, juste en tirant ensemble matériel nu bits afin que le tra