Mikrokontrollerkretser
Mikrokontrollerkretser
Jump to TINA Main Page & General Information
TINA støtter mye av (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokontrollere; nye MCU-er blir stadig lagt til. Du kan se, endre og feilsøke programmet som kjører i prosessoren, og selvfølgelig kan du opprette din egen kode.
Det er to måter å levere programmet til mikrokontroller i TINA. Du kan bruke den binære koden og feilsøkingsfilen som er laget av en standardkompiler (f.eks. MPLAB for PICs), eller du kan bare laste inn forsamlingskoden for å kjøre og feilsøke i TINA ved hjelp av den innebygde assembler-debuggeren.
I TINA kan mikrokontrollere simuleres ikke bare alene, men også sammen med analog, digital, HDL eller andre modeller.
Kjører og redigerer MCU-kode
Last inn PIC Flasher.TSC-kretsen fra eksemplerMicrocontrollersPic-mappen.
Følgende skjematiske ved hjelp av 16F73 PIC-mikrokontrolleren vises med 16F73 PIC-mikrokontrolleren:
Denne kretsen teller bare fremover en-for-en. trykk
Skjermen skal gå frem en for én.
Dobbeltklikk på MCU for å se ASM-koden i den. (se flere detaljer i Hurtigstart-håndboken).
TINA har en flott funksjon der du kan redigere og endre kildekoden direkte i TINA.
La oss gjøre følgende endring i koden:
Endre instruksjonen (valgt ovenfor) i linje 25 (du kan se linjenummeret i høyre nederste hjørne av kodeditoringsvinduet):
fra addlw 01H
å addlw 02H
Lagre den endrede koden til TINA ved å trykke på
Hvis du trykker på
Merk at den endrede koden automatisk blir lagret i TINA. TSC-filen.
Bruk av debugger
La oss se et annet program med mer interaktivitet.
Last inn PIC16F84interrupt_rb0.TSC eksempelet på TINA fra eksemplerMicrosoftMicrocontrollersPic-mappen.
Trykk på
Men hvis du klikker på SW-HL1-bryteren, vil displayet gå fremover med 1 hver gang bryteren endres fra Lav til Høy.
PICs avbruddshåndteringsfunksjon vil tillate oss å oppdage bytteendringer.
La oss nå se operasjonen mer detaljert ved hjelp av TINAs interaktive ASM-feilsøkingsprogram.
For å aktivere feilsøkingsprogrammet, velg Alternativ på Analyse-menyen. Sett deretter av for "Aktiver MCU Code debugger", som vist nedenfor i dialogboksen Analysealternativer.
Trykk på OK-knappen og MCU-debuggeren vil vises:
La oss følge programkjøringen trinn for steg ved å trykke på
Etter rundt 14 klikk kommer vi til PT1: etiketten der programmet ser ut til å være i en uendelig sløyfe.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
øke COUNTER og kopiere til PORT A, og utdataene vil bli 1. Etter dette kommer programmet tilbake til "uendelig loop" på PT1.
Redigerer koden i debuggeren
La oss nå gjøre en liten endring i programmet for å demonstrere bruken av debuggeren. Kopier INCF COUNTER, F-setningen ved å bruke Kopier og lim inn slik:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Nå når du trykker på
Trykk Ja og trykk på
Du kan også sjekke kretsen i kontinuerlig kjøremodus for debuggeren ved å trykke på
Selv om debuggeren løper fort, kan du fortsatt se "uendelig syklus" og deretter hoppe til Interrupt-serverdelen (INT_SERV:) når du bytter bryteren.
Å gjøre et bruddpunkt
Ved å bruke trinn-for-trinn-modusen, er det ofte umulig å komme til et bestemt punkt i programmet. Selv om du er tålmodig nok til å trekke tusen trinn, kan programmets strøm ikke tillate deg å gå hvor du vil.
For å stoppe ved en bestemt linje, kan du markere måloppstillingen ved å sette et "breakpoint".
Kjør programmet i kontinuerlig modus for debugger ved hjelp av
For å demonstrere dette, klikk på stigningsoppstillingen i interrupt-serveren etter INT_SERV: -merket, og trykk på
Trykk nå på
Selv om du har satt et brytepunkt, vil kodekjøring ikke stoppe fordi det aldri kommer til brytepunktet. Men når du bytter bryter fra Lav til Høy, stopper programmet ved den merkede setningen:
INT_SERV: INCF COUNTER, F
Nå kan du fortsette enten trinnvis