Microcontroller-circuits
Microcontroller-circuits
Jump to TINA Main Page & General Information
TINA ondersteunt veel (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) microcontrollers; er worden voortdurend nieuwe MCU's toegevoegd. U kunt het programma dat in de processor wordt uitgevoerd zien, wijzigen en debuggen en u kunt natuurlijk uw eigen code maken.
Er zijn twee manieren om het programma voor microcontrollers in TINA aan te bieden. U kunt de binaire code en het foutopsporingsbestand van een standaard compiler (bijv. MPLAB voor PIC's) gebruiken of u kunt uw assemblagecode gewoon laden en debuggen in TINA met behulp van de ingebouwde assembler-debugger.
In TINA kunnen microcontrollers niet alleen worden gesimuleerd, maar ook samen met analoge, digitale, HDL of andere modellen.
MCU-code uitvoeren en bewerken
Laad het PIC Flasher.TSC-circuit uit de map ExamplesMicrocontrollersPic.
Het volgende schema met de 16F73 PIC-microcontroller verschijnt bij de 16F73 PIC-microcontroller:
Dit circuit telt eenvoudig één voor één mee. druk de
Het display zou een voor een naar voren moeten gaan.
Dubbelklik op de MCU om de ASM-code erin te zien. (zie meer details in de snelstarthandleiding).
TINA heeft een geweldige functie waarmee je de broncode rechtstreeks in TINA kunt bewerken en wijzigen.
Laten we de volgende wijziging in de code aanbrengen:
Wijzig de instructie (hierboven geselecteerd) in regel 25 (u kunt het regelnummer in de rechterbenedenhoek van het codebewerkingsvenster zien):
van addlw 01H
om 02H toe te voegen
Sla de gewijzigde code op TINA op door op te drukken
Als u op de
Merk op dat de gewijzigde code automatisch wordt opgeslagen in het TINA .TSC-bestand.
De debugger gebruiken
Laten we een andere applicatie bekijken met meer interactiviteit.
Laad het PIC16F84interrupt_rb0.TSC-voorbeeld van TINA uit de map ExamplesMicrocontrollersPic.
Druk op de
Als u echter op de schakelaar SW-HL1 klikt, gaat het display 1 vooruit telkens wanneer de schakelaar verandert van Laag naar Hoog.
Dankzij de interrupt-verwerkingscapaciteit van de PIC kunnen we switchwijzigingen detecteren.
Laten we nu de bewerking in meer detail bekijken met behulp van de interactieve ASM-debugger van TINA.
Selecteer Optie in het menu Analyse om de debugger te activeren. Stel vervolgens het selectievakje "MCU-code debugger inschakelen" in, zoals hieronder weergegeven in het dialoogvenster Analyse-opties.
Druk op de knop OK en de MCU-foutopsporing verschijnt:
Laten we de programma-uitvoering stap voor stap volgen door op de. Te drukken
Na ongeveer 14-klikken komen we bij het label PT1: waar het programma in een oneindige lus lijkt te zitten.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
verhoog de TELLER en kopieer deze naar POORT A. De uitvoer zal 1 zijn. Hierna keert het programma terug naar de "oneindige lus" op PT1.
De code in de foutopsporing bewerken
Laten we nu een kleine wijziging in het programma aanbrengen om het gebruik van de foutopsporing te demonstreren. Dupliceer de INCF COUNTER, F-instructie met kopiëren en plakken als volgt:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Nu als u op drukt
Druk op Ja en druk op
U kunt ook het circuit in de continue werkingsmodus van de foutopsporing controleren door op de knop te drukken
Hoewel de debugger snel zal worden uitgevoerd, kunt u nog steeds de 'oneindige cyclus' en vervolgens de sprong naar het interruptieserverdeel (INT_SERV:) zien wanneer u de schakelaar wijzigt.
Een breekpunt maken
Met de stapsgewijze modus is het vaak onmogelijk om een bepaald punt in het programma te bereiken. Zelfs als u geduldig genoeg bent om duizend stappen te doen, kan het zijn dat de stroom van het programma u niet toelaat waar u wilt.
Om te stoppen bij een bepaalde regel, kunt u de doelinstructie markeren door een "breekpunt" in te stellen.
Voer het programma uit in de continue modus van de foutopsporing met behulp van de
Om dit aan te tonen, klikt u op het incrementsoverzicht in onze interruptserver achter het label INT_SERV: en drukt u op
Druk nu op
Ook al heb je een breekpunt ingesteld, code-uitvoering stopt niet omdat het nooit naar het breekpunt komt. Wanneer u echter de omschakeling van Laag naar Hoog wijzigt, stopt het programma bij de gemarkeerde instructie:
INT_SERV: INCF COUNTER, F
Nu kunt u stap voor stap doorgaan