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.
|