Mikrovaldiklio grandinės

Mikrovaldiklio grandinės

Jump to TINA Main Page & General Information 

TINA palaiko daug (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrovaldikliai; nuolat pridedami nauji MCU. Galite matyti, keisti ir derinti procesorių veikiančią programą ir, žinoma, galite sukurti savo kodą.

Yra du būdai TINA mikrovaldiklių programai teikti. Galite naudoti standartinį kompiliatoriaus atliktą dvejetainį kodą ir derinimo failą (pvz., MPLAB, skirtas PIC), arba galite tiesiog įkelti surinkimo kodą, kad paleistumėte ir ištaisytumėte TINA, naudodami pastatytą montuotojo-debugger.

Paprasto kontūro grandinės sukūrimas naudojant PIC mikrovaldiklį su surinkimo kalbos programavimu

Paprasto kontūro grandinės sukūrimas naudojant PIC mikrovaldiklį su C kalbos programavimu

Pagrindinis mikrokontrolerio derinimas naudojant TINA

TINA mikrokontroleriai gali būti imituojami ne tik atskirai, bet ir kartu su analoginiais, skaitmeniniais, HDL ar kitais modeliais.

MCU kodo veikimas ir redagavimas

Įdėkite PIC „Flasher.TSC“ grandinę iš aplanko „exampleMicrocontrollersPic“.

Su 16F73 PIC mikrokontroleriu pasirodys toks schema, naudojant mikrovaldiklį 16F73 PIC:

Mikrovaldiklio grandinės, vaizdas 1

Ši grandinė tiesiog skaičiuoja viena po kitos. Paspauskite mygtuką, kad pamatytumėte, kaip jis veikia.

Ekranas turėtų eiti į priekį vienas po kito.

Dukart spustelėkite MCU, kad pamatytumėte ASM kodą. (žr. daugiau informacijos „Quick Start“ vadove).

TINA turi puikią funkciją, kuria galite redaguoti ir pakeisti pirminį kodą tiesiogiai TINA.

Leidžia atlikti šiuos kodo pakeitimus:

Pakeiskite nurodymą (pasirinktą aukščiau) eilutėje 25 (galite pamatyti eilutės numerį dešiniajame kodo redaktoriaus lango kampe):

iš addlw 01H

pridėti 02H

Pakeiskite pakeistą kodą į TINA, paspausdami piktogramą ir uždarykite atidarytus MCU langus.

Jei paspausite mygtukas dabar, prieaugis bus 2!

Atminkite, kad pakeistas kodas bus automatiškai išsaugomas TINA .TSC faile.

Naudojant derintuvą

Pamatysime kitą programą, turinčią daugiau interaktyvumo.

Įdėkite PIC16F84interrupt_rb0.TSC TINA pavyzdį iš aplanko „Pavyzdžiai“.

Paspauskite mygtukas. Iš pradžių atrodo, kad nieko neįvyksta.

Tačiau, jei spustelėsite SW-HL1 jungiklį, ekranas 1 veiks kiekvieną kartą, kai jungiklis pasikeis iš žemo į aukštą.

PIC pertraukimo tvarkymo galimybė leis mums nustatyti jungiklio pakeitimus.

Dabar žiūrėkime operaciją išsamiau, naudojant TINA interaktyvų ASM debuggerį.

Norėdami suaktyvinti derintuvą, analizės meniu pasirinkite parinktį Option. Tada pažymėkite žymės langelį „Įjungti„ MCU Code debugger “, kaip parodyta toliau analizės parinkčių dialogo lange.

Paspauskite mygtuką OK ir pasirodys MCU debugger:

Stebėkime programos vykdymą palaipsniui, paspausdami Trasas į mygtuką.

Po 14 paspaudimų mes pateksime į PT1: etiketę, kurioje atrodo, kad programa yra begalinėje linijoje.

PT1: INCF TEMP, F GOTO PT1

Dabar spustelėkite SW-HL1 jungiklį ir pakeiskite į Aukštą. (Turėtumėte spustelėti, kai žymeklis pasikeičia į viršutinę rodyklę Î). Grįžkite į Debugger ir spustelėkite Paspauskite mygtuką du kartus. Programa atpažins pertraukimą ir pereis į


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT

padidinkite COUNTER ir nukopijuokite į PORT A, o išvestis bus 1. Po to programa grįš į „begalinę kilpą“ PT1.

Kodo redagavimas derintuve

Dabar atlikite nedidelį programos pakeitimą, kad galėtume parodyti debugger. Pasikartokite INCF COUNTER, F pareiškimą naudodami kopijuoti ir įklijuoti taip:

        INT_SERV:
        INCF COUNTER, F 
        INCF COUNTER, F 
        MOVF COUNTER, 0
        MOVWF PORTA    

Dabar, kai paspausite programa paprašys:

Paspauskite Taip ir paspauskite mygtuką dar kartą. Dabar prieaugis bus 2 kiekviename žemo aukščio jungiklio keitime.

Taip pat galite patikrinti grandinę nepertraukiamo derinimo režimo režimu, paspausdami mygtuką.

Nors debugeris veiks greitai, vis tiek galite matyti „begalinį ciklą“ ir tada pereiti prie pertraukos serverio dalies (INT_SERV:), kai keičiate jungiklį.

Lūžio taškas

Naudojant laipsnišką režimą, dažnai neįmanoma patekti į tam tikrą programos tašką. Net jei esate pakankamai pacientas, kad pasiektumėte tūkstantį žingsnių, programos srautas gali neleisti jums žingsnio ten, kur norite.

Jei norite sustabdyti tam tikrą liniją, galite pažymėti tikslinį pareiškimą nustatydami „pertraukos tašką“.

Paleiskite programą nepertraukiamame derinimo režime, naudodami Pradėti komandą ir dabar programa sustos norimoje eilutėje prieš vykdydama pažymėtą komandą.

Norėdami tai įrodyti, spustelėję INT_SERV: etiketę, spauskite ant papildomo pranešimo mūsų nutraukimo serveryje ir paspauskite Perjungti pertraukos mygtuką.

Dabar paspauskite Paleisti mygtuką. Programa pradeda veikti „begaliniame cikle“.

Nors nustatėte pertraukos tašką, kodo vykdymas nesibaigs, nes jis niekada nepasiekia pertraukos tašką. Tačiau pakeisdami jungiklį iš žemo į aukštą, programa sustos pažymėtame pranešime:

   INT_SERV:
             INCF COUNTER, F

Dabar galite tęsti žingsnį po žingsnio arba vykdymo režime