Intro au microcontrôleur débogage (et un minuteur Pomodoro) (5 / 9 étapes)

Étape 5: Points d’arrêt, locales et registres

Hit the "aller" (
) le bouton pour démarrer la pomodoro. Porter une attention particulière pour les LEDs. Il y a quelque chose de louche sur les valeurs qu’ils montrent. Lorsque la minuterie démarre tout d’abord, il devrait montrer le nombre total de minutes de pomodoro (25) ainsi que les minutes de la pause (5). En binaire, c’est « 11110 ». Hmm... Pourquoi sont les cinq del sur ?

Donc, nous allons jeter un oeil à la fonction « setLEDs ». Soit il est reçoit une valeur incorrecte ou recevoir la valeur de droite mais affichant une valeur incorrecte (ou une étrange combinaison des deux).

Faites défiler jusqu'à la première ligne de la fonction setLEDs (ligne 22, voir image 1). Cliquez-droit sur n’importe quelle partie de cette ligne et sélectionnez "Toggle Breakpoint (Code)". Notez le point rouge à gauche de cette ligne de code ? Vous pouvez double-cliquer dans cette marge pour des points d’arrêt ainsi branché/débranché. (image 2) Un point d’arrêt est un point le dans le code où l’exécution du programme se brisera ce qui vous permet de déboguer.

Avec le point d’arrêt défini, appuyez sur le "Reset" (

) bouton. Après avoir appuyé sur "Reset" il vous sera demandé avec un message de longue haleine qui dit il peut prendre beaucoup de temps à « Exécuter à la main ». Ce qui veut dire que votre débogueur est définie de s’arrêter à la première ligne dans la fonction principale, mais votre seul point d’arrêt du matériel est fixé à la ligne 22. Pour mettre fin à la main, le programme s’exécutera une ligne à la fois jusqu'à ce qu’elle obtienne au principal. À l’heure actuelle, ce n’est pas un gros problème, mais cette limitation peut être gênante avec le code plus complexe. Notez que microcontrôleurs plus capable peut permettre à de nombreux points d’arrêt de plus matériel, mais l’un est mieux que rien (Oui, je suis vous regarder Arduino). :)

Pour l’instant, juste comprendre, que si un point d’arrêt est défini lorsque vous démarrez votre code, il va prendre une seconde supplémentaire ou deux pour atteindre principal.

Ouf... pas grave. La flèche verte est à la première ligne principale actuelle (ligne 50, voir image 3) ? Génial, maintenant nous pourrions simple étape (c'est-à-dire "Step Into" (

)) tout le chemin à la setLEDs fonction, mais cela pourrait prendre beaucoup de temps. Au lieu de cela, parce que nous avons un point d’arrêt, nous vient de frapper "aller" (
).

Presque immédiatement, la flèche verte défile à la ligne 22. Pour obtenir une meilleure idée de ce que fait cette fonction, sélectionnez "affichage"→"locaux" dans le menu. (image 4) Dans la fenêtre qui s’affiche, la variable locale «valeur» est affichée avec... euh... sa valeur, « 0x1e ». Un clic droit sur la variable dans la fenêtre variables locales vous permet de changer la notation de base de la valeur. Changez-la en decimal et avis, maintenant que la fonction en effet transmise le numéro correct (30).

Étant donné que cette fonction ne traite qu’une seule variable, et nous savons que c’est correct, nous allons fermer la fenêtre "variables locales". Maintenant, sélectionnez "affichage" → "s’inscrire" dans le menu. Dans la fenêtre "s’inscrire", modifiez la liste déroulante pour afficher « Port 1/2 ». Développez l’arborescence "P1OUT". (image 5)

P.0 et P.7 peuvent avoir des valeurs aléatoires mais P.1 – P.6 devraient tous être zéro. Appuyez sur "Step Into" (

) plusieurs fois. Comme nous pointer le code, nous pouvons regarder les registres changer. Vous même n’avez pas besoin de regarder la fiche technique de savoir que le registre de la P1OUT est l’état des broches numériques sur le microcontrôleur étant donné que les LEDs doivent être reflétant ce que vous voyez dans la fenêtre « S’inscrire ». Valeurs en rouge dans la fenêtre "Enregistrer" signifient que la dernière instruction exécutée changé cette valeur. Cela s’applique aux variables dans la fenêtre « Variables locales » ainsi.

Notez que la valeur seulement vire au rouge si le Registre est modifié, donc après l’exécution de ligne 45, le Registre est rouge et montre un 1 au lieu de la valeur prévue 0. Nous avons trouvé notre bug ! On dirait que j’ai inversé les opérateurs binaires. (image 6)

Articles Liés

Intro aux microcontrôleurs PIC

Intro aux microcontrôleurs PIC

un minimum de ce que vous devez obtenir commencé à programmer des micros PIC pour une utilisation dans des projets électroniques (robotique, etc.)Étape 1: Ce que vous avez besoin pour le projet Remarque : on dirait que si vous avez windows XP, il n'y
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
Début de la partie microcontrôleurs 12 : Intro aux interruptions

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ér
Qu’un débogage s’affiche pour microcontrôleurs

Qu’un débogage s’affiche pour microcontrôleurs

cet affichage vient dans très maniable si vous travaillez avec la fonction d'ADC de micro-contrôleurs.Il n'a besoin que deux broches pour contrôler l'affichage (trois si vous souhaitez contrôler le loquet aussi). Avec deux sept segments il peut affic
Intro aux GPS avec des microcontrôleurs

Intro aux GPS avec des microcontrôleurs

Une fois que la compétence des opérations strictement militaires, GPS est devenu une partie intégrante de la vie moderne et en relativement peu de temps ! Qui ne voudrait pas envie de savoir quand et où ils sont n'importe où sur la planète ? C'est un
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
Groovin ' Grover : Une marionnette microcontrôleur à base

Groovin ' Grover : Une marionnette microcontrôleur à base

Grover Groovin ' est une marionnette manipulée par quatre servos de passe-temps et un contrôleur de servo microcontrôleur à base de Pololu Maestro. Vous pouvez contrôler chacun des membres de Grover indépendamment et lui faire à pied, vague et plus d
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
Programmation des microcontrôleurs PIC

Programmation des microcontrôleurs PIC

microcontrôleurs PIC sont un outil très utile et polyvalent pour une utilisation dans de nombreux projets électroniques. Ils sont très peu coûteux et facile à trouver. Ils sont aussi très puissants et beaucoup sont capables de vitesses allant jusqu'à
Comment changer fusible bits de Atmega328p AVR - microcontrôleur 8 bits en utilisant Arduino

Comment changer fusible bits de Atmega328p AVR - microcontrôleur 8 bits en utilisant Arduino

Dans ce instructable vous apprendrez comment changer les bits de fusible du microcontrôleur Atmega328p. J'utilise Arduino mega comme programmeur au programme Atmega328P-PU sur maquette. Il est livré avec une valeur par défaut 1MHz interne calibré la
3D imprimés microcontrôleur Dice Roller

3D imprimés microcontrôleur Dice Roller

Il s'agit d'un projet juste pour le plaisir que j'ai fait dans la Digilent MakerSpace. Généralement, chaque fois que je joue des jeux de société j'utilise une application smartphone laminage dés puisque les dés sont si faciles à perdre. J'ai pensé qu
Comment programmer un PIC microcontrôleur & lire un codeur

Comment programmer un PIC microcontrôleur & lire un codeur

Introduction : de jouets électroniques & Jeux pour fours à micro-ondes, microcontrôleurs se trouve à peu près n'importe où ces jours-ci ! Mais comment pouvons-nous rendre ces petits ordinateurs fonctionner pour nos propres projets électroniques ? C'e
Comment programme microcontrôleurs AVR, bon marchés et faciles

Comment programme microcontrôleurs AVR, bon marchés et faciles

Cette volonté instructable guide vous étape par étape comment faire pour exécuter un programme simple en un micro-contrôleur ATMEGA (uC). Si don´t vous savez tout sur comment votre code est stocké dans les microcontrôleurs, il existe essentiellement
UART générique pour n’importe quel microcontrôleur

UART générique pour n’importe quel microcontrôleur

Communiquer avec un micro-contrôleur lors de l'exécution, est très utileinstallation. Il peut être utilisé pour le débogage, ou d'envoyer des commandes etc. L'un des plus simple protocole disponible pour communiquer est UART. Requiere une épingle pou