Mikrokontrolerska kola
Mikrokontrolerska kola
Jump to TINA Main Page & General Information
TINA podržava mnogo (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokontroleri; novi MCU se stalno dodaju. Možete vidjeti, mijenjati i otklanjati greške u programu koji radi u procesoru i, naravno, možete kreirati vlastiti kod.
Postoje dva načina pružanja programa za mikrokontrolere u TINA-i. Možete koristiti binarni kod i datoteku za otklanjanje grešaka napravljenih od strane standardnog kompajlera (npr. MPLAB za PIC-ove) ili možete jednostavno učitati svoj asemblerski kod za pokretanje i otklanjanje grešaka u TINA koristeći ugrađeni asembler-debugger.
U TINA mikrokontroleri se mogu simulirati ne samo sami, već i zajedno sa analognim, digitalnim, HDL ili drugim modelima.
Pokretanje i uređivanje MCU koda
Učitajte PIC Flasher.TSC kolo iz foldera ExamplesMicrocontrollersPic.
Sljedeća šema koja koristi 16F73 PIC mikrokontroler će se pojaviti sa 16F73 PIC mikrokontrolerom:
Ovaj sklop jednostavno broji napred jedan po jedan. Pritisnite
Ekran bi trebao ići naprijed jedan po jedan.
Dvaput kliknite na MCU da vidite ASM kod u njemu. (pogledajte više detalja u priručniku za brzi početak).
TINA ima odličnu funkciju u kojoj možete uređivati i mijenjati izvorni kod direktno u TINA-i.
Učinimo sljedeću promjenu u kodu:
Promijenite instrukciju (odabranu gore) u redu 25 (broj reda možete vidjeti u desnom donjem uglu prozora za uređivač koda):
od addlw 01H
do addlw 02H
Sačuvajte promijenjeni kod u TINA pritiskom na
Ako pritisnete
Imajte na umu da će promijenjeni kod automatski biti sačuvan u TINA .TSC datoteci.
Korištenje debuggera
Pogledajmo još jednu aplikaciju sa više interaktivnosti.
Učitajte primjer PIC16F84interrupt_rb0.TSC za TINA iz foldera ExamplesMicrocontrollersPic.
Pritisnite taster
Međutim, ako kliknete na prekidač SW-HL1, ekran će iskoračiti naprijed za 1 svaki put kada se prekidač promijeni iz Low u High.
Mogućnost upravljanja prekidima PIC-a će nam omogućiti da otkrijemo promjene prekidača.
Sada pogledajmo operaciju detaljnije koristeći TINA-in interaktivni ASM debugger.
Da biste aktivirali program za otklanjanje grešaka, izaberite opciju Opcija u meniju Analiza. Zatim postavite potvrdni okvir „Omogući otklanjanje grešaka MCU koda“, kao što je prikazano u nastavku u dijalogu „Opcije analize“.
Pritisnite dugme OK i MCU debugger će se pojaviti:
Pratimo izvođenje programa korak po korak pritiskom na
Nakon otprilike 14 klikova dolazimo do oznake PT1: gdje se čini da je program u beskonačnoj petlji.
PT1: INCF TEMP, F IDI NA PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
povećajte COUNTER i kopirajte na PORT A, a izlaz će biti 1. Nakon toga program će se vratiti u “beskonačnu petlju” na PT1.
Uređivanje koda u debugger-u
Sada napravimo malu promjenu u programu kako bismo demonstrirali upotrebu debuggera. Duplirajte INCF COUNTER, F naredbu koristeći Kopiraj i Zalijepi ovako:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Sada kada pritisnete
Pritisnite Da i pritisnite
Također možete provjeriti kolo u kontinuiranom načinu rada debugera pritiskom na
Iako će program za otklanjanje grešaka raditi brzo, i dalje možete vidjeti "beskonačni ciklus", a zatim i skok na dio servera za prekid (INT_SERV:) kada promijenite prekidač.
Pravljenje tačke prekida
Koristeći način rada korak po korak, često je nemoguće doći do određene tačke u programu. Čak i ako ste dovoljno strpljivi da pređete hiljadu koraka, tok programa vam možda neće dozvoliti da koračate tamo gde želite.
Da biste se zaustavili na određenoj liniji, možete označiti ciljni izraz postavljanjem “prelomne tačke”.
Pokrenite program u kontinuiranom režimu otklanjanja grešaka koristeći
Da biste to demonstrirali, kliknite na inkrement naredbu na našem serveru za prekid nakon oznake INT_SERV: i pritisnite
Sada pritisnite
Iako ste postavili tačku prekida, izvršavanje koda se neće zaustaviti jer nikada ne stiže do tačke prekida. Međutim, kada promijenite prekidač sa Low na High, program će se zaustaviti na označenom iskazu:
INT_SERV: INCF COUNTER, F
Sada možete nastaviti bilo koji korak po korak