Atmel démarrage 4: Deux Blinky – commutateurs, résistances de pull-up et Bit Ops (2 / 11 étapes)

Étape 2: Contrôle de la résistance de pull-up

Alors, comment peut-on la résistance de pull-up [12,13] par programme contrôler ?

Se rappeler de la mise en service #3, la DDR, le PORT et déclarations de PIN dans Atmel Studio C/C++ contrôlent la fonction et l’état des ports MCU. Par exemple, l’instruction partielle ' DDRB =' fixera le registre de direction de données 8 bits pour le port B avec 0 et 1 qui le MCU interprète ensuite pour définir les broches de port physique B correspondant à l’entrée et de sortie, respectivement. La déclaration partielle « = PINB » (par exemple x = PINB), par exemple, lit le registre d’entrée pour les broches de port physique B. Le ' PORTB =' déclaration partielle va écrire 8 bits à la sortie du port B Registre qui le MCU interprète pour définir les broches correspondantes du port physique B - avec une réserve concernant les résistances de pull-up. Et cela commence notre discussion pour cette étape. Cette étape utilise le port B à titre d’exemple, mais les autres ports disponibles sur un Atmel AVR MCU (par exemple A, B,...) se comportent de la même façon. Rappel, le ATTiny2313A utilise broches 12 à 19 pour port B0 par B7, notée respectivement [1] comme indiqué dans le tableau 1.

Nous considérons un exemple qui illustre l’utilisation de mixtes d’entrée et de sortie pour portB qui actionne également une résistance pull-up. Pour l’exemple, supposons que nous avons seulement besoin de sorties physiques broches 13 et 14 (B1 et B2, voir tableau 1) mais nécessitent des entrées sur le reste des broches pour le Port B. Supposons encore que la broche 18 (c.-à-d., B6) doit avoir une résistance pull-up comme pour un interrupteur semblable à celui illustré dans l’étape précédente.

Tout d’abord, mettre l’accent sur la résistance de pull-up. Il pourra être engagée par écrit un « 1 » à une entrée de broche. Laissez cet évier pendant un certain temps. Écrire un « 0 » à un pin d’entrée désactive la résistance de pull-up interne et configure l’entrée à un état de haute impédance [1].

Tableau 1: Un exemple montrant les broches 12-19 avec les entrées et sorties et PU de pull-up activé et haute impédance HZ.

Broches de physiques

19

18

17

16

15

14

13

12

Nom

B7

B6

B5

B4

B3

B2

B1

B0

DDRB

0

0

0

0

0

1

1

0

PortB physique

Dans

Dans

Dans

Dans

Dans

Hors

Hors

Dans

PORTB = 0b0100100

0

1

0

0

0

1

0

0

Résultat physique Pin

HZ

UNITÉ CENTRALE

HZ

HZ

HZ

SCR

0V

HZ

Donc pour cet exemple, afin d’obtenir des entrées et sorties sur la quatrième ligne du tableau 1, il faut d’abord définir DDRB = 0b00000110 sorte que physiques broches 13 et 14 sont les sorties et le reste sont des entrées. Pour activer la résistance de pull-up (PU) pour broche 18, nous écrivons un « 1 » B6, qui est une entrée, comme dans la sixième ligne. Ensuite, nous avons mis PORTB = 0b0100100 comme indiqué dans la sixième ligne de la table. La dernière ligne indique les États physiques qui en résultent des broches physiques 12-19. Pour les broches physiques 13 et 14, les valeurs logiques dans le registre DDRB ont été traduits pour les tensions sur les broches comme prévu. Épingles à 12, 15, 17 et 19 sont entrées et ont été mis dans un état de haute impédance, comme en témoigne le HZ, car DDRB définissez-les comme entrées, et les bits correspondants à l’écriture PORTB a désactivé les résistances de pull-up. Souvent (mais certainement pas toujours) le programme définit DDRB et les résistances de pull-up au début de l’exécution et ne réinitialise pas eux. Pour utiliser le port d’entrée/sortie mixte, on a besoin d’une méthode par programmation de distinguer entre les broches d’entrée et de sortie, fournissant ainsi la capacité indépendamment lire et écrire sans affecter les résistances de pull-up et les paramètres de port. Voici où le masquage devient important.

Articles Liés

Atmel démarrage 5: Ligne de vie

Atmel démarrage 5: Ligne de vie

M. A. Parker c2015La longe est un circuit simple basé sur l'unité de microcontrôleur Atmel ATTiny2313A (MCU) qui fonctionne comme une source d'horloge de substitut pour une cible MCU rendus inopérante par des fusibles à tort de réglage de l'horloge.
Atmel démarrage 3: Binky One – PORT, broches, DDR et del

Atmel démarrage 3: Binky One – PORT, broches, DDR et del

M. A. Parker c2015Blinky, le témoin clignotant, montre comment utiliser le langage C/C++ dans le Studio Atmel (AS) pour contrôler le MCU Atmel ports pour entrée et sortie (c.-à-d., IO) et révèle la vie « secrète » des registres Atmel PORT, de PIN et
Atmel démarrage 2: Circuits de microcontrôleur et les fusibles

Atmel démarrage 2: Circuits de microcontrôleur et les fusibles

M. A. Parker c2015Circuits et fusibles construit un circuit simple mais important sur la maquette de l'expérimentateur qui sera utilisé comme plateforme de base pour de nombreux projets de microcontrôleur et pour définir les paramètres de microcontrô
Atmel démarrage 1: Programmeur et Studio Atmel

Atmel démarrage 1: Programmeur et Studio Atmel

M. A. Parker c2015Installation Atmel Studio (AS) et un programmeur incarnent les prémices [0] sur le chemin d'accès à l'aide d'une unité individuelle de Microcontrôleur AVR Atmel MCU [1] par opposition à la MCU-a-bord comme Arduino [2]. Ici commence
Initiation à l’ordinateur de poche Mini

Initiation à l’ordinateur de poche Mini

Environ un mois et demi, j'ai créé un projet appelé l'ordinateur de poche Mini et écrit une Instructable sur la façon de le construire. Ce Instructable prend l'ensemble du projet un peu plus loin en vous aidant à démarrer avec votre ordinateur de poc
Cardan sans balais avec Arduino

Cardan sans balais avec Arduino

Il s'agit d'un projet de printemps 2014 Electronics à Pomona College créé par Andreas Biekert et Jonah Grubb. Merci au professeur Dwight Whitaker, Tony Grigsby et le département de physique de Pomona.Avec ce projet, notre but était de créer un cardan
Matrice de LED avec contrôleur de jeu - premier projet A

Matrice de LED avec contrôleur de jeu - premier projet A

ce projet a été construit pour mon cours d'introduction électronique à l'Université de Waterloo au Canada.  Il s'agissait de ma première introduction à l'électronique et donc, mon premier projet.Suivez ces étapes pour construire un tableau de LED 16
Commutateurs de lecture avec ATtiny2313

Commutateurs de lecture avec ATtiny2313

il y a eu plusieurs Instructables traitant des sorties de la ATtiny2313 et les dispositifs similaires à AVR. Par exemple,. Travaillant sur la dernière de l'Elliot réel, qui montre comment contrôler les moteurs pas à pas, j'ai trouvé qu'il serait vrai
ATMega328 : perdre le cristal et gagner deux broches

ATMega328 : perdre le cristal et gagner deux broches

Cette instructable explique comment faire fonctionner la puce Atmega328 comme la puce dans un Arduino sans le cristal, ce qui rend breadboarding plus facile et en vous donnant deux broches supplémentaires pour travailler avec. Ce programme ne fonctio
Commutateur du SIP & PUFF Arduino

Commutateur du SIP & PUFF Arduino

Arduino The série de microcontrôleurs ouvre un monde immense de possibilités pour les programmeurs débutants et amateurs ! Avec les systèmes de développement disponible gratuitement et tutoriels et une vaste gamme de fonctions de la bibliothèque et d
Trouble de marbre - un simulateur de labyrinthe en marbre avec inclinaison commutateurs

Trouble de marbre - un simulateur de labyrinthe en marbre avec inclinaison commutateurs

marbre trouble est un cas limite de Marble Madness :)Il simule un labyrinthe en marbre en détectant l'orientation de la boîte avec 2 interrupteurs d'inclinaison.Arrêter la presse : il existe une version nouvelle et plus intuitive qui ne nécessite pas
Commutateur intelligent

Commutateur intelligent

Le monde a changé si rapidement, et c'est toute la diligence science et la technologie. Choses ont amélioré, nouvelle ère est arrivé d'un meilleur et un monde intelligent. Mais selon moi, il y a une chose qui n'a pas changé encore... Un commutateur!!
Conduite de deux tubes Nixie avec un Arduino via un registre à décalage et deux SN74141s.

Conduite de deux tubes Nixie avec un Arduino via un registre à décalage et deux SN74141s.

tubes Nixie sont vraiment cool, à la recherche et deviennent très populaires pour leur look « rétro ». Bien qu'il existe un certain nombre de tutoriels là-bas sur l'utilisation de tubes nixie et certaines unités préemballées sympa (voir ces gentils d
Ajout d’un commutateur de puissance d’un pistolet à colle chaude

Ajout d’un commutateur de puissance d’un pistolet à colle chaude

j'ai fait cette modification il y a environ 8 ans et son encore en cours d'exécution forte.Le pistolet à colle chaude (d'où vient être nommé HGG) que j'ai possédé avait deux paramètres "Hot" (ferait fondre la colle chaude) et "Chaud" (