Tutoriel d’assembleur AVR 7 (12 / 12 étapes)

Etape 12 : Code et vidéo pour la version de travail

Comme nous l’avons vu par la dernière version, l’interruption de bouton ne fonctionne pas très bien parce que l’interruption est déclenchée sur un front montant à broche PD2, puis le gestionnaire d’interruption appelle la conversion ADC. Toutefois, le connecteur ADC obtient ensuite la lecture de tension avant s’est stabilisée et afin que c’est un non-sens.

Nous avons besoin est d’introduire un délai entre l’interruption sur PD2 et l’ADC lire sur PC0. Nous le ferons en ajoutant un timer/compteur, une interruption de débordement du compteur et une routine de retard. Heureusement, nous savons déjà comment faire à partir de 3 tutoriel ! Donc nous juste copier et coller le code correspondant de là.

J’ai donné le code qui en résulte et une vidéo montrant en opération.

Vous remarquerez que les lectures ne sont pas aussi précis qu’on pourrait espérer. C’est probablement à cause d’un certain nombre de sources :

  1. Nous sommes le taraudage de la tension de sortie du clavier pour déclencher sur PD2 qui affecte la lecture en PC0.
  2. On ne sait vraiment combien de temps pour retarder après la détente pour obtenir la meilleure lecture.
  3. Il faut quelques cycles pour la conversion de l’ADC compléter ce qui signifie que nous ne pouvons pas tir rapide sur le clavier.
  4. Il y a probablement des bruit dans le clavier lui-même.
  5. etc....

Donc, même si nous avons réussi à obtenir le clavier pour travailler, et nous pourrions maintenant l’utiliser dans des applications en utilisant les valeurs de pression de touche d’une autre manière au lieu de simplement leur sortie dans l’affichage de l’analyseur, il n’est pas très précis et il est très ennuyeux. C’est pourquoi je pense que la meilleure façon de câbler des claviers est tout simplement de coller chaque sortie à partir du tableau dans un autre port et décider quel touche par quels ports voir une tension. C’est facile, très rapide et très précis.

En fait, il y a que deux raisons pourquoi on voudrait conduire un clavier de la façon dont nous l’avons fait ici :

  1. Il n’utilise que 2 des broches sur notre microcontrôleur au lieu de 8.
  2. C’est un grand projet pour montrer les différents aspects de l’ADC sur le microcontrôleur qui est différent des norme choses que vous trouverez là-bas comme des relevés de température, en tournant les potentiomètres, etc.. Je voulais un exemple de déclenchement unique lectures et externe pin mode CPU-avalant marche auto-déclenchement plutôt que juste libre.

Bref, voilà un couple final des exercices pour vous :

Exercice 6: ré-écrire le gestionnaire d’interruption complète de conversion ADC pour utiliser une Table de correspondance. C'est-à-dire afin qu’il teste la valeur analogique avec le premier élément du tableau et si il est plus grand il retourne de l’interruption, si elle n’est pas alors il incrémente Z vers l’élément suivant dans le tableau et les branches à nouveau à l’épreuve. Cela va raccourcir le code et nettoyer la routine d’interruption et rendre lui le sembler plus agréable. (Je donnerai une solution possible tant que l’étape suivante)

Exercice 7: brancher votre clavier numérique à 8 broches sur le microcontrôleur
et écrire le pilote simple pour elle et combien plus agréable c’est expérience. Pouvez-vous penser à quelques façons d’améliorer notre travail de méthode ?

C’est tout pour ce tutoriel. J’ai joint la version finale avec pointeurs. Comme nous faisons notre chemin plus près de notre objectif final, nous allons utiliser le clavier une fois de plus dans tutoriel 9 pour montrer comment contrôler sept segments affiche avec elle (et construire quelque chose d’intéressant qui utilise les touches supplémentaires sur le clavier du téléphone) puis on passera à contrôler les choses avec les touches à la place (puisque cette méthode convient le mieux avec le produit final que nous construisons vers avec ces tutoriels) et nous sera réserver juste le clavier.

Vous voir la prochaine fois !

Articles Liés

Tutoriel d’assembleur AVR 11

Tutoriel d’assembleur AVR 11

Bienvenue au didacticiel 11 !Dans ce bref didacticiel, nous allons enfin construire la première partie de notre projet final.La première chose que vous devriez faire est d'aller à la toute dernière étape de ce tutoriel et voir la vidéo. Puis revenez
Tutoriel d’assembleur AVR 1

Tutoriel d’assembleur AVR 1

J'ai décidé d'écrire une série de tutoriels sur la façon d'écrire des programmes de langage d'assemblage pour le Atmega328p qui est le microcontrôleur utilisé dans l'Arduino. Si les gens restent intéressées, je vais continuer à mettre un une semaine
Tutoriel d’assembleur AVR 8

Tutoriel d’assembleur AVR 8

Bienvenue au didacticiel 8 !Dans ce bref didacticiel, nous allons prendre un peu d'une déviation de l'introduction de nouveaux aspects de la programmation en langage assembleur pour montrer comment déplacer nos composants de prototypage pour un circu
Tutoriel d’assembleur AVR 6

Tutoriel d’assembleur AVR 6

Bienvenue au didacticiel 6 !Tutoriel d'aujourd'hui sera un court où nous mettrons au point une méthode simple pour transmettre des données entre un atmega328p et un autre à l'aide de deux ports qui les relient. Nous puis prendre dés rouleau de tutori
Tutoriel d’assembleur AVR 9

Tutoriel d’assembleur AVR 9

Bienvenue au didacticiel 9.Aujourd'hui nous allons montrer comment piloter un afficheur 7 segments, mais aussi un affichage à 4 chiffres à l'aide de notre code en langage assembleur ATmega328P et AVR. Ce faisant cela que nous allons devoir prendre de
Tutoriel d’assembleur AVR 2

Tutoriel d’assembleur AVR 2

Ce tutoriel est une continuation de "tutoriel d'assembleur AVR 1"Si vous n'avez pas passé par 1 tutoriel, vous devez arrêter maintenant et faire celui-là en premier.Dans ce tutoriel, nous allons poursuivre notre étude de programmation en langage
Tutoriel d’assembleur AVR 10

Tutoriel d’assembleur AVR 10

Bienvenue au didacticiel 10 !Désolé, qu'il a fallu si longtemps pour sortir cette nouvelle tranche mais c'est un moment assez intense de l'année. En tout cas, ici c'est !Nous avons parcouru un long chemin et vous êtes probablement déjà assez compéten
Tutoriel d’assembleur AVR 5

Tutoriel d’assembleur AVR 5

Aujourd'hui nous allons regarder de plus près aux divers emplacements mémoire dans le microcontrôleur Atmega328p et voir si nous pouvons mieux comprendre comment les choses sont stockés, où ils sont stockés et comment les pointeurs et les tables de r
Tutoriel d’assembleur AVR 4

Tutoriel d’assembleur AVR 4

Bienvenue au didacticiel numéro 4 !Dans ce tutoriel, nous allons construire un circuit qui simulera l'enroulement des deux dés. Ensuite, nous allons tout d'abord écrire un programme de force brute qui fait le travail. Puis nous permettra de simplifie
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
MRETV - vidéo, stéréo Sound et beaucoup plus d’un Arduino standard !

MRETV - vidéo, stéréo Sound et beaucoup plus d’un Arduino standard !

MRETV - vidéo, stéréo Sound et beaucoup plus d'un Arduino standard !Maintenant mis à jour pour Arduino 1.6.6 novembre 2015 !Utiliser seulement deux résistances et deux diodes pour générer la vidéo plein écran. Texte 47 x 29 de 8 x 8 caractères, doubl
Comment charger des programmes à un Arduino UNO de Atmel Studio 7

Comment charger des programmes à un Arduino UNO de Atmel Studio 7

Dans ce court Instructable, nous allons apprendre à charger un programme à une carte Arduino UNO utilisant Atmel Studio au lieu de l'IDE Arduino. Cela est utile lorsque vous avez besoin élaborer un programme à l'aide de plusieurs fonctions avancées o
Star Trek sonnette Hack

Star Trek sonnette Hack

J'ai toujours été un fan de la Star Treks et comme tel, j'étais très excité lorsque mon colocataire ramené un panneau la comm série style Star Trek original. Je n'avais jamais vu l'un d'entre eux, mais une recherche rapide nous a pris sur le site de
Carte de développement pour microcontrôleurs Attiny84

Carte de développement pour microcontrôleurs Attiny84

Il s'agit d'une carte de développement pour microcontrôleur Attiny84. Tha Attiny84 puce possède 11 broches adressables avec l'IDE Arduino, 8k de mémoire flash pour le stockage de programme et 512 octets de mémoire vive disponible pour les variables d