WebElektronika

Szimuláció az Atmel Studio-ban

person access_time 2015.09.28.
Folytatjuk most az Atmel fejlesztőrendszerével történő ismerkedésünket, megnézzük most a szimulációnak a használatát. Érdemes használni ezt akkor is, ha van fejlesztőeszközünk.


Indítsuk el az Atmel Studio-t és hozzunk benne létre egy projektet, a használni kívánt mikrovezélrő ATmega8.

Írjuk meg az első ábrán látható programot (ez a kép már a szimulációnál készült). A main() függvény tartalmaz int, float és char változók deklarálását, illetve egy függvény meghívását is. A változók megadása után beállítjuk a B, a C és a D portregiszterek irányát kimenetre.

kep
1. ábra   Példaprogram
 

A while végtelenciklusban a portok mindig ugyanazt az értéket kapják. Tekintettel arra, hogy portokról beszélünk, a végtelen ciklust így is megadhattuk volna :

PORTB = ch2;
PORTC = f;
PORTD = Szoroz(x,y);
while(1);

 

Kattintsunk a Toolbar-on a No Tool-ra (2. ábra), ezután lehetőségünk lesz kijelölni, hogy a szimulátort szeretnénk használni (3. ábra).

kep
2. ábra   "No Tool"

 

kep
3. ábra   A szimulátor kiválasztása
 

A szimulátor kiválasztása után lehetőségünk nyílik megadni egy stimuli file-t, amelynek segítségével a szimuláció könnyebbé válik, de nekünk ilyen jelenleg nincs.

Ezután kattintsunk a Toolbar-on lévő Start Debugging-ra, vagy nyomjuk meg az F5-öt (4. ábra). Ekkor a Debug üzemmódban lehetőségünk nyílik a szimulációs eredmények vizsgálatára.

kep
4. ábra   Debug üzemmód indítása
 

Vizsgáljuk meg először a regisztereket. Ehhez a Toolbar-on kattintanunk kell a Registers ikonra (5. ábra).kep
5. ábra   Register ikon, Alt+5
 

Ezután szimuláljuk lépésenként (F11) a programunk működését. Annál a regiszternél, ahol az érték változik, piros színnel kerül jelölésre (6. ábra).

kep
6. ábra   R18-as regiszter értéke megváltozik
 

Látjuk a 6. ábrán, hogy az R18-as regiszter értéke 0x68 (decimális : 104) lett, tehát a ch2 változó értéke itt került eltárolásra.

Most kattintsunk a Toolbar-on a Processors ikonra és ismételjük meg a szimulációt, haladjunk ismét lépésenként (7. ábra). Ennél az ablaknál szintén meg tudjuk nézni az előző 32 regiszter tartalmát, de itt további lehetőség is van. Láthatjuk a PC értékét, a veremmutatót, de még a Status regisztert is.

kep
7. ábra   Processor ablak
 

Nézzük most meg az IO ablakot, ezen belül például a PORTB-t. Ha a szimulációt lépésenként hajtjuk végre, akkor láthatjuk piros színnel jelölve az aktuális értékváltozást. Először a DDRB regiszternek változik meg az értéke, 0xFF-et (1111 1111) írunk be, ezáltal minden portbit kimenet lesz (8. ábra).

kep
8. ábra   A B port regisztereinek értékei
 

A while végtelen ciklusban a PORTB regiszter is értéket kap, binárisan a 01101000 érték kerül eltárolásra, amely a 0x68-nak felel meg, amelyet a ch2 char típusú változó tartalmaz.
Hasonló módon győzödhetünk meg a C port, illetve a D port regisztereinek értékeiről is.

Kattintsunk a PORTC-re (9. ábra). Ekkor a C port regisztereinek az értékeit tudjuk ellenőrizni.

kep
9. ábra   A C port regiszterei
 

Végül ellenőrizzük a D port regisztereinek a tartalmát is (10. ábra).

kep
10. ábra   A D port regisztereinek tartalma
 

Ha további parancsokat, szimulációs ablakokat szeretnénk felvenni a Toolbar-ra, akkor az Add or Remove Buttons-ra kell kattintanunk (11. ábra) és a Customize-t kell kiválasztanunk.

kep
11. ábra   További parancsok felvétele a Toolbar-ra