Circuite microcontroler
Circuite microcontroler
Jump to TINA Main Page & General Information
TINA susține o mulțime de (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) microcontrolere; sunt adăugate în mod constant noi MCU-uri. Puteți vedea, modifica și depana programul care rulează în procesor și, desigur, vă puteți crea propriul cod.
Există două modalități de a furniza programul pentru microcontrolere în TINA. Puteți folosi codul binar și fișierul de depanare realizat de un compilator standard (de exemplu, MPLAB pentru PIC-uri) sau puteți încărca doar codul dvs. de asamblare pentru a rula și depana în TINA folosind built-in-assembler-debugger.
În microcontrolerele TINA pot fi simulate nu numai singure, ci și împreună cu analogice, digitale, HDL sau alte modele.
Rularea și editarea codului MCU
Încărcați circuitul PIC Flasher.TSC din dosarul ExamplesMicrocontrollersPic.
Următoarele scheme care utilizează microcontrolerul 16F73 PIC vor apărea împreună cu microcontrolerul 16F73 PIC:
Acest circuit contează pur și simplu unul câte unul. apasă pe
Afișajul ar trebui să avanseze unul câte unul.
Faceți dublu clic pe MCU pentru a vedea codul ASM din acesta. (vedeți mai multe detalii în manualul de pornire rapidă).
TINA are o caracteristică excelentă prin care puteți edita și modifica codul sursă direct în TINA.
Faceți următoarea modificare în cod:
Schimbați instrucțiunea (selectată mai sus) în rândul 25 (puteți vedea numărul liniei în colțul din dreapta jos al ferestrei editorului de cod):
de la adăugarea 01H
pentru a adăuga 02H
Salvați codul modificat la TINA apăsând pe
Dacă apăsați
Rețineți că codul modificat va fi salvat automat în fișierul TINA .TSC.
Utilizarea depanatorului
Să vedem o altă aplicație cu mai multă interactivitate.
Încărcați exemplul PIC16F84interrupt_rb0.TSC al TINA din folderul ExamplesMicrocontrollersPic.
Apăsaţi
Cu toate acestea, dacă faceți clic pe comutatorul SW-HL1., Afișajul va merge mai departe cu 1 de fiecare dată când comutatorul se schimbă de la Low la High.
Capacitatea de manipulare a întreruperilor de la PIC ne va permite să detectăm modificările comutatoarelor.
Acum să vedem operațiunea în detaliu folosind debuggerul ASM interactiv al TINA.
Pentru a activa depanatorul, selectați Opțiune din meniul Analiză. Apoi setați „Activați caseta de selectare Activare depanare cod MCU”, așa cum se arată mai jos în caseta de dialog Opțiuni de analiză.
Apăsați butonul OK și apare debuggerul MCU:
Să urmăm pasul cu execuția programului apăsând pe
După aproximativ clicurile 14 ajungem la eticheta PT1: unde programul pare să fie într-o buclă infinită.
PT1: INCF TEMP, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
incrementați COUNTER și copiați la PORT A, iar ieșirea va fi 1. Apoi programul va reveni la "buclă infinită" la PT1.
Editarea codului în depanator
Acum, să facem o mică schimbare în program pentru a demonstra folosirea programului de depanare. Duplicați instrucțiunea INCF COUNTER, F utilizând funcția Copiere și lipire astfel:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Acum când apăsați tasta
Apăsați Da și apăsați pe
De asemenea, puteți verifica circuitul în modul de funcționare continuă al depanatorului apăsând pe
Chiar dacă programul de depanare va rula rapid, puteți vedea în continuare "ciclul infinit" și apoi saltul la partea serverului de întrerupere (INT_SERV:) când schimbați comutatorul.
Efectuarea unui punct de întrerupere
Utilizând modul pas-cu-pas, adesea este imposibil să ajungeți la un anumit punct al programului. Chiar dacă sunteți suficient de răbdători pentru a pași o mie de pași, fluxul programului ar putea să nu vă permită să faceți pasul acolo unde doriți.
Pentru a opri la o anumită linie, puteți marca instrucțiunea țintă stabilind un "punct de întrerupere".
Rulați programul în modul continuu al aplicației de depanare folosind
Pentru a demonstra acest lucru, faceți clic pe instrucțiunea incrementului din serverul de întrerupere după eticheta INT_SERV: și apăsați pe
Acum, apăsați pe
Chiar dacă ați setat un punct de întrerupere, executarea de cod nu se va opri deoarece nu ajunge niciodată la punctul de întrerupere. Totuși, atunci când schimbați comutatorul de la Low la High, programul se va opri la instrucțiunea marcată:
INT_SERV: INCF COUNTER, F
Acum puteți continua fie pas cu pas