Mikrocontrollerschaltungen
Mikrocontrollerschaltungen
Jump to TINA Main Page & General Information
TINA unterstützt viele (PIC, AVR, Arduino, 8051, HCS, STM, ARM, Ti-Tiva, Ti-Sitara, Infineon-XMC) Mikrocontroller; Es werden ständig neue MCUs hinzugefügt. Sie können das im Prozessor ausgeführte Programm anzeigen, ändern und debuggen und natürlich Ihren eigenen Code erstellen.
Es gibt zwei Möglichkeiten, das Programm für Mikrocontroller in TINA bereitzustellen. Sie können den Binärcode und die Debug-Datei verwenden, die von einem Standard-Compiler (z. B. MPLAB für PICs) erstellt wurden, oder Sie können Ihren Assemblycode einfach laden, um ihn in TINA auszuführen und zu debuggen, indem Sie den eingebauten Assembler-Debugger verwenden.
In TINA können Mikrocontroller nicht nur alleine, sondern auch zusammen mit analogen, digitalen, HDL- oder anderen Modellen simuliert werden.
MCU-Code ausführen und bearbeiten
Laden Sie den PIC Flasher.TSC-Kreislauf aus dem Ordner ExamplesMicrocontrollersPic.
Das folgende Schema, das den Mikrocontroller 16F73 PIC verwendet, wird mit dem Mikrocontroller 16F73 PIC angezeigt:
Diese Schaltung zählt einfach vorwärts. Drücken Sie die
Die Anzeige sollte einen Schritt nach vorne gehen.
Doppelklicken Sie auf die MCU, um den darin enthaltenen ASM-Code anzuzeigen. (Weitere Einzelheiten finden Sie in der Kurzanleitung).
TINA verfügt über eine großartige Funktion, mit der Sie den Quellcode direkt in TINA bearbeiten und ändern können.
Nehmen wir die folgenden Änderungen im Code vor:
Ändern Sie die Anweisung (oben ausgewählt) in Zeile 25 (Sie können die Zeilennummer in der rechten unteren Ecke des Code-Editor-Fensters sehen):
von addlw 01H
02H hinzufügen
Speichern Sie den geänderten Code in TINA, indem Sie die Taste drücken
Wenn Sie die Taste
Beachten Sie, dass der geänderte Code automatisch in der TINA-Datei .TSC gespeichert wird.
Verwenden des Debuggers
Sehen wir uns eine andere Anwendung mit mehr Interaktivität an.
Laden Sie das PIC16F84interrupt_rb0.TSC-Beispiel für TINA aus dem Ordner ExamplesMicrocontrollersPic.
Drücken Sie auf
Wenn Sie jedoch auf den Schalter SW-HL1 klicken, wird die Anzeige jedes Mal um 1 weitergeschaltet, wenn der Schalter von Low auf High wechselt.
Die Interrupt-Handling-Funktion des PIC ermöglicht uns die Erkennung von Schalteränderungen.
Lassen Sie uns nun den Vorgang mit dem interaktiven ASM-Debugger von TINA genauer betrachten.
Um den Debugger zu aktivieren, wählen Sie im Menü Analyse die Option Option. Aktivieren Sie dann das Kontrollkästchen "MCU-Code-Debugger aktivieren", wie unten im Dialogfeld "Analyseoptionen" gezeigt.
Drücken Sie die OK-Taste. Der MCU-Debugger wird angezeigt:
Folgen Sie der Programmausführung Schritt für Schritt, indem Sie die Taste drücken
Nach ungefähr 14-Klicks gelangen wir zum PT1: Label, wo sich das Programm in einer Endlosschleife befindet.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
Erhöhen Sie den COUNTER und kopieren Sie ihn in PORT A. Die Ausgabe wird 1 sein. Danach kehrt das Programm bei PT1 zur "Endlosschleife" zurück.
Bearbeiten des Codes im Debugger
Nehmen wir nun eine kleine Änderung im Programm vor, um die Verwendung des Debuggers zu demonstrieren. Duplizieren Sie die INCF COUNTER, F-Anweisung mit Copy and Paste wie folgt:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Jetzt, wenn Sie die Taste drücken
Drücken Sie Ja und dann
Sie können den Stromkreis auch im Dauerbetrieb des Debuggers überprüfen, indem Sie auf drücken
Auch wenn der Debugger schnell ausgeführt wird, können Sie den "Endloszyklus" und dann den Sprung zum Interrupt-Serverteil (INT_SERV:) sehen, wenn Sie den Schalter wechseln.
Haltepunkt setzen
Im Schritt-für-Schritt-Modus ist es oft unmöglich, an eine bestimmte Stelle im Programm zu gelangen. Selbst wenn Sie geduldig genug sind, um in tausend Schritten vorzugehen, kann es sein, dass Sie mit dem Programmablauf nicht dorthin gelangen, wo Sie möchten.
Um an einer bestimmten Zeile anzuhalten, können Sie die Zielanweisung markieren, indem Sie einen „Haltepunkt“ setzen.
Führen Sie das Programm im kontinuierlichen Modus des Debuggers mit der Taste aus
Um dies zu demonstrieren, klicken Sie auf die Inkrement-Anweisung in unserem Interrupt-Server nach der Bezeichnung INT_SERV: und drücken Sie die
Drücken Sie jetzt die Taste
Obwohl Sie einen Haltepunkt festgelegt haben, wird die Codeausführung nicht angehalten, da der Haltepunkt nicht erreicht wird. Wenn Sie jedoch den Schalter von Niedrig auf Hoch stellen, stoppt das Programm bei der markierten Anweisung:
INT_SERV: INCF COUNTER, F
Jetzt können Sie entweder Schritt für Schritt fortfahren