Krugovi mikrokontrolera
Krugovi mikrokontrolera
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; stalno se dodaju novi MCU. Možete vidjeti, izmijeniti i otkloniti pogreške u programu koji se izvodi u procesoru i, naravno, možete stvoriti vlastiti kôd.
Postoje dva načina pružanja programa za mikrokontrolere u TINA-i. Možete koristiti binarni kod i debug datoteku koju je izradio standardni kompajler (npr. MPLAB za PIC-ove) ili možete jednostavno učitati svoj montažni kod za pokretanje i ispravljanje pogrešaka u TINA-i pomoću ugrađenog asembler-debugera.
U TINA-i se mikrokontroleri mogu simulirati ne samo sami, već i zajedno s analognim, digitalnim, HDL ili drugim modelima.
Pokretanje i uređivanje MCU koda
Umetnite krug PIC Flasher.TSC iz mape ExampleMicrocontrollersPic.
Sljedeća shema pomoću mikrokontrolera 16F73 PIC pojavit će se s mikrokontrolerom PIC 16F73:
Ovaj sklop jednostavno broji naprijed jedan po jedan. pritisni
Zaslon bi trebao napredovati jedan po jedan.
Dvaput kliknite MCU da biste vidjeli ASM kod u njemu. (više pojedinosti potražite u priručniku za brzi početak).
TINA ima veliku značajku u kojoj možete urediti i promijeniti izvorni kod izravno u TINA.
Omogućujemo sljedeću izmjenu koda:
Promijenite upute (odabrane iznad) u retku 25 (broj retka možete vidjeti u donjem desnom kutu prozora uređivača koda):
od dodatka 01H
za dodavanje 02H
Spremite promijenjeni kod u TINA pritiskom na tipku
Ako pritisnete
Imajte na umu da će se promijenjeni kod automatski spremiti u TINA .TSC datoteku.
Korištenje alata za ispravljanje pogrešaka
Pogledajmo još jednu aplikaciju s više interaktivnosti.
Umetnite PIC16F84interrupt_rb0.TSC primjer TINA-a iz mape ExamplesMicrocontrollersPic.
Pritisnite
Međutim, ako kliknete na prekidač SW-HL1., Zaslon će se pomaknuti prema naprijed za 1 svaki put kada se preklopnik promijeni s Low na High.
PIC-ova sposobnost prekida rukovanja omogućit će nam da otkrijemo promjene u prekidačima.
Sada ćemo vidjeti operaciju detaljnije pomoću TINA-inog interaktivnog ASM otklanjanja pogrešaka.
Da biste aktivirali program za otklanjanje pogrešaka, odaberite Opcija na izborniku Analiza. Zatim postavite potvrdni okvir "Omogući program za otklanjanje pogrešaka MCU koda", kao što je prikazano dolje u dijaloškom okviru Opcije analize.
Pritisnite gumb OK i pojavit će se MCU debugger:
Pratimo izvršavanje programa korak po korak pritiskom na gumb
Nakon oko 14 klikova stižemo do oznake PT1: gdje se čini da je program u beskonačnoj petlji.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
uvećajte COUNTER i kopirajte u PORT A, a izlaz će biti 1. Nakon toga program će se vratiti na "beskonačnu petlju" na PT1.
Uređivanje koda u programu za ispravljanje pogrešaka
Sada napravimo malu promjenu u programu kako bismo demonstrirali korištenje programa za ispravljanje pogrešaka. Udvostručite naredbu INCF COUNTER, F pomoću Kopiraj i Zalijepi na ovaj način:
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 krug u kontinuiranom modu rada debagera pritiskom na tipku
Iako će se program za pronalaženje pogrešaka brzo pokrenuti, još uvijek možete vidjeti "beskonačni ciklus", a zatim prijeći na dio poslužitelja prekida (INT_SERV:) kada promijenite prekidač.
Izrada prijelomne točke
Koristeći korak-po-korak način, često je nemoguće doći do određene točke u programu. Čak i ako ste dovoljno strpljivi da napravite korak od tisuću koraka, tijek programa možda vam neće omogućiti da krenete tamo gdje želite.
Da biste se zaustavili na određenoj liniji, možete označiti odrednicu cilja postavljanjem "točke prijeloma".
Pokrenite program u neprekidnom načinu za ispravljanje pogrešaka pomoću
Da biste to pokazali, kliknite na izjavu inkrementa na našem poslužitelju prekida nakon oznake INT_SERV: i pritisnite
Sada pritisnite
Iako ste postavili točku prekida, izvršavanje koda neće se zaustaviti jer nikad ne dođe do točke prijeloma. Međutim, kada promijenite prekidač s Low na High, program će se zaustaviti na označenom izrazu:
INT_SERV: INCF COUNTER, F
Sada možete nastaviti korak po korak