Microcontroller kredsløb
Microcontroller kredsløb
Jump to TINA Main Page & General Information
TINA støtter en masse (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokontroller; nye MCU'er tilføjes konstant. Du kan se, ændre og debugge det program, der kører i processoren, og selvfølgelig kan du oprette din egen kode.
Der er to måder at levere programmet til mikrocontrollere i TINA. Du kan bruge den binære kode og debug-fil lavet af en standard compiler (f.eks. MPLAB til PIC'er), eller du kan bare indlæse din samlingskode for at køre og fejle i TINA ved hjælp af den indbyggede assembler-debugger.
I TINA kan mikrocontrollere simuleres ikke alene alene, men også sammen med analoge, digitale, HDL eller andre modeller.
Kørsel og redigering af MCU-kode
Indlæs PIC Flasher.TSC-kredsløbet i eksemplet ExamplesMicrocontrollersPic.
Følgende skematiske bruger 16F73 PIC mikrocontroller vises med 16F73 PIC mikrocontroller:
Dette kredsløb tæller simpelthen fremad en-til-en. Tryk på
Displayet skal træde frem en for en.
Dobbeltklik på MCU'en for at se ASM-koden i den. (se flere detaljer i Quick Start manualen).
TINA har en fantastisk funktion, hvorved du kan redigere og ændre kildekoden direkte i TINA.
Lad os gøre følgende ændring i koden:
Ændre instruktionen (valgt ovenfor) i linje 25 (du kan se linjenummeret i højre nederste hjørne af kodeditorens vindue):
fra addlw 01H
at addlw 02H
Gem den ændrede kode til TINA ved at trykke på
Hvis du trykker på
Bemærk, at den ændrede kode automatisk gemmes i TINA .TSC filen.
Brug af debuggeren
Lad os se et andet program med mere interaktivitet.
Indlæs PIC16F84interrupt_rb0.TSC eksemplet på TINA fra mappen ExamplesMicrocontrollersPic.
Tryk
Men hvis du klikker på SW-HL1-kontakten, vil displayet gå fremad af 1 hver gang skifteren skifter fra lav til høj.
PIC'ens afbrydelseshåndteringsfunktion gør det muligt for os at opdage omskiftningsændringer.
Lad os nu se operationen mere detaljeret ved hjælp af TINAs interaktive ASM-debugger.
Vælg Option i menuen Analyse for at aktivere fejlfindingsprogrammet. Indstil derefter afkrydsningsfeltet "Aktivér MCU-kode debugger" som vist nedenfor i dialogboksen Analyseindstillinger.
Tryk på OK-knappen, og MCU-debuggeren vises:
Lad os følge programudførelsen trin for trin ved at trykke på
Efter omkring 14 klik kommer vi til PT1: etiketten, hvor programmet ser ud til at være i en uendelig sløjfe.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
øg COUNTER og kopier til PORT A, og output vil være 1. Efter dette vil programmet vende tilbage til "uendelig sløjfe" på PT1.
Redigering af koden i debuggeren
Lad os nu lave en lille ændring i programmet for at demonstrere brugen af debuggeren. Kopier INCF COUNTER, F-sætningen ved hjælp af Kopier og Sæt som følger:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Nu, når du trykker på
Tryk på Ja, og tryk på
Du kan også kontrollere kredsløbet i debuggerens løbende driftstilstand ved at trykke på
Selvom debuggeren løber hurtigt, kan du stadig se den "uendelige cyklus" og derefter springet til Interrupt-serverdelen (INT_SERV:), når du skifter omskifteren.
Gør et breakpoint
Ved hjælp af trin-for-trin-tilstanden er det ofte umuligt at komme til et bestemt punkt i programmet. Selvom du er tålmodig nok til at træde et tusind trin, kan programmets strøm muligvis ikke give dig mulighed for at træde hvor du vil.
For at stoppe ved en bestemt linje kan du markere målopgørelsen ved at indstille et "breakpoint".
Kør programmet i debuggerens kontinuerlige tilstand ved hjælp af
For at demonstrere dette skal du klikke på stigningsopgørelsen i vores afbryderserver efter INT_SERV: -mærket og trykke på
Tryk nu på
Selvom du har sat et breakpoint, vil kodekørsel ikke stoppe, fordi det aldrig kommer til breakpoint. Men når du skifter skifte fra Lav til Høj, stopper programmet ved den markerede erklæring:
INT_SERV: INCF COUNTER, F
Nu kan du fortsætte enten trin for trin