Circuits de microcontrôleur
Circuits de microcontrôleur
Jump to TINA Main Page & General Information
TINA supporte beaucoup de (PIC, AVR, Arduino, 8051, HCS, STM, BRAS, TI-Tiva, TI-Sitara, Infineon-XMC) microcontrôleurs; de nouveaux microcontrôleurs sont constamment ajoutés. Vous pouvez voir, modifier et déboguer le programme en cours d'exécution dans le processeur et, bien sûr, vous pouvez créer votre propre code.
Le programme pour les microcontrôleurs dans TINA peut être fourni de deux manières. Vous pouvez utiliser le code binaire et le fichier de débogage créés par un compilateur standard (par exemple, MPLAB pour les PIC) ou simplement charger votre code d'assemblage pour qu'il soit exécuté et débogué dans TINA à l'aide de son assembleur-débogueur intégré.
Dans TINA, les microcontrôleurs peuvent être simulés non seulement seuls, mais également avec des modèles analogiques, numériques, HDL ou autres.
Exécution et modification du code MCU
Chargez le circuit PIC Flasher.TSC à partir du dossier ExamplesMicrocontrollersPic.
Le schéma suivant, utilisant le microcontrôleur 16F73 PIC, apparaît avec le microcontrôleur 16F73 PIC:
Ce circuit compte simplement un par un. appuyez sur la
L'affichage devrait avancer un par un.
Double-cliquez sur la MCU pour y voir le code ASM. (voir plus de détails dans le manuel de démarrage rapide).
TINA possède une fonctionnalité intéressante vous permettant d’éditer et de modifier le code source directement dans TINA.
Permet de faire le changement suivant dans le code:
Modifiez l'instruction (sélectionnée ci-dessus) dans la ligne 25 (vous pouvez voir le numéro de la ligne dans le coin inférieur droit de la fenêtre de l'éditeur de code):
de addlw 01H
ajouter 02H
Enregistrez le code modifié dans TINA en appuyant sur le bouton
Si vous appuyez sur la
Notez que le code modifié sera automatiquement enregistré dans le fichier TINA .TSC.
Utiliser le débogueur
Voyons une autre application avec plus d'interactivité.
Chargez l'exemple PIC16F84interrupt_rb0.TSC de TINA à partir du dossier ExamplesMicrocontrollersPic.
Appuyez sur la touche
Toutefois, si vous cliquez sur le commutateur SW-HL1., L’affichage avance de 1 chaque fois que le commutateur passe de bas à élevé.
La capacité de traitement des interruptions du PIC nous permettra de détecter les changements de commutateur.
Voyons maintenant l'opération plus en détail à l'aide du débogueur ASM interactif de TINA.
Pour activer le débogueur, sélectionnez Option dans le menu Analyse. Ensuite, cochez la case «Activer le débogueur de code MCU», comme indiqué ci-dessous dans la boîte de dialogue Options d'analyse.
Appuyez sur le bouton OK et le débogueur MCU apparaîtra:
Suivons l’exécution du programme étape par étape en appuyant sur la touche
Après environ clics 14, nous arrivons à l'étiquette PT1: où le programme semble être dans une boucle infinie.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
incrémente le COMPTEUR et copie au PORT A, et la sortie sera 1. Après cela, le programme reviendra à la «boucle infinie» de PT1.
Editer le code dans le débogueur
Faisons maintenant un petit changement dans le programme pour illustrer l'utilisation du débogueur. Dupliquez l'instruction INCF COUNTER, F en utilisant les fonctions Copier / Coller comme ceci:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Maintenant, quand vous appuyez sur le
Appuyez sur Oui et appuyez sur le bouton
Vous pouvez également vérifier le circuit en mode de fonctionnement continu du débogueur en appuyant sur le bouton
Même si le débogueur fonctionnera rapidement, vous pouvez toujours voir le «cycle infini», puis le passage à la partie serveur d'interruption (INT_SERV:) lorsque vous modifiez le commutateur.
Faire un point d'arrêt
En mode pas à pas, il est souvent impossible d’atteindre un point particulier du programme. Même si vous êtes suffisamment patient pour franchir mille étapes, le déroulement du programme ne vous permettra peut-être pas de vous déplacer où vous le souhaitez.
Pour arrêter à une ligne particulière, vous pouvez marquer l'instruction cible en définissant un «point d'arrêt».
Exécutez le programme en mode continu du débogueur en utilisant le
Pour le démontrer, cliquez sur l’instruction d’incrément dans notre serveur d’interruption après le libellé INT_SERV: et appuyez sur le bouton
Maintenant, appuyez sur
Même si vous avez défini un point d'arrêt, l'exécution du code ne s'arrête pas car il ne parvient jamais au point d'arrêt. Toutefois, lorsque vous passez le commutateur de bas à élevé, le programme s’arrête à l’instruction marquée:
INT_SERV: INCF COUNTER, F
Maintenant, vous pouvez continuer soit étape par étape