Mikrokontroller ( MCU ) áramkörök

A TINA 7 és magasabb verziói támogatják a PIC, AVR, 8051 mikrokontrollerek használatát.  További típusok hozzáadása folyamatban van. A mikrokontroller programja szabadon módosítható, illetve saját kód is használható (assembly, hex, folyamatábra). A TINA 8 és magasabb verzióiban a mikrokontroller kódja folyamatábrában is megadható.

Assembly kódot forráskódban is megadhatunk, ilyenkor a TINA automatikusan lefordítja azt. Lehetőség van továbbá bináris kód (HEX,LST file) megadására, amit más (pl. MPLAB) programmal állíthatunk elő.

MCU kód szerkesztése és futtatása

Töltsük be a PICFlasher.tsc áramkört az EXAMPLES\Microcontrollers\PIC könyvtárból.

Az áramkör egy egyszerű számlálót valósít meg. Nyomjuk meg a gombot a teszteléshez. A kijelző ekkor egyesével számol előrefelé.

Klikkeljünk kétszer az MCU makrón a program megtekintéséhez (részletesebben ld. TINA kézikönyv).


A kód akár futtatás közben is módosítható. 

Nézzük ezt meg egy példán keresztül.  Változtassuk meg a 25. sorban lévő utasítást (az sorszámláló a szerkesztő ablak jobb alsó sarkában található)

               addlw 01H

a következőre

              addlw 02H
Mentsük el a módosított kódot a gombbal majd csukjuk be a szerkesztő ablakot. Ha most megnyomjuk a gombot, a kijelző kettővel fog előre lépni.  Az áramkör mentésével ez a változás is automatikusan elmentődik.


A nyomkövető használata

Tekintsük a következő példát:

Töltsük be a  PIC16F84interrupt_rb0.TSC példát az Examples\Microcontrollers\PIC könyvtárból.



Nyomjuk meg a  gombot. Most úgy tűnik, hogy nem történik semmi.

Ha mos megnyomjuk az SW-HL1 kapcsolót, akkor a kijelző egyet lép előre. A kapcsoló Alacsony szintből Magas szintbe kapcsolásával a kijelzőn lévő érték eggyel nőni fog. A PIC mikrokontroller képes a lábain fellépő változások detektálására.

Most nézük meg részletesebben az MCU nyomkövető használatát.  A nyomkövetés engedélyezéséhez kapcsoljuk be az MCU nyomkövető engedélyezése opciót az Analízis opciók-nál.


 

Nyomjuk meg az OK gombot majd indítsuk el a VHD interaktív szimulációt:

A programot lépésenként is követhetjük az Előre lép gombbal. Körülbelül 14 ciklus után a PT1 címkéhez kerülünk, aminél úgy tűnik a program végtelen ciklusba került.


PT1: INCF TEMP, F GOTO PT1

Most kapcsoljuk át az SW-HL1 kapcsolót Magas szintbe. (Akkor kapcsoljunk át, ha a kurzor ikonja egy nyíllá változik).
Menjünk vissza a nyomkövetőbe majd nyomjuk meg a
gombot kétszer.
A program felismeri a külső megszakítást, majd erre a címre ugrik:

INT_SERV:
INCF COUNTER, F

MOVF COUNTER, 0
MOVWF PORT

A számláló értékét eggyel növeli, ami a kijelzőn is megjelenik, majd visszatér a megszakításból a PT1 ciklusba.

Szerkesztés nyomkövető üzemmódban

Most hajtsunk végre egy kis módosítást a programban, a nyomkövető használata közben Duplikáljuk le az INCF COUNTER, F sort.

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

Most nyomjuk meg az Előre lép gombot,  a program meg fogja kérdezni:

Nyomjuk meg az Igen gombot a dialógusban, majd nyomjuk meg Előre lép gombot ismét. Most a kijelzőn lévő érték mindig kettővel fog változni, ha a SW-HL1 kapcsolót Alacsony szintből Magas szintbe hozzuk.
A programot folytonosan futtathatjuk a  
  gomb segítségével. .

Töréspontok használata

A lépésenkénti nyomkövetés nem alkalmas sokszor bizonyos kódrészek elérésére, mert ilyenkor túl sok lépést kellene megtenni manuálisan. Egy adott sor eléréséhez használjuk a töréspontokat ilyenkor, majd nyomjuk meg a  gombot. Ilyenkor a program automatikusan megáll a töréspontnál.
Nézzük ezt egy példán keresztül. Helyezzünk el töréspontot a  gomb segítségével. Helyezzük a kurzort az INT_SERV címkéhez, majd nyomjuk meg a Töréspont be/ki kapcsolás gombot.

Most nyomjuk meg a gombot. A program belefut a PT1 címkénél levő végtelen ciklusba, azonban ha a kapcsolót Alacsony szintből Magas szintbe visszük, a program megáll az általunk kijelölt töréspontnál:

             INT_SERV:
INCF COUNTER, F

A végrehajtást folytathatja innen a vagy a  gombbal.