WebElektronika

Típusátalakítások a PIC18F családban II.

person access_time 2014.04.25.
Gyakran előforduló probléma a mikrokontrolleres alkalmazások fejlesztésénél, hogy különböző típuskonverziókat kell elvégeznünk. Ezekre a típusmódosításokra, konverziókra találunk példákat ebben a cikkben.


Az első táblázatban látjuk az MCC18-as fordítónak a konverziós függvényeit, amelyeknek a segítségével különböző típuskonverziókat tudunk végrehajtani. Egyik korábbi cikkben azt néztük meg, hogyan tudunk úgy típuskonverziót végrehajtani (pl.: int -> byte), hogy a "C" nyelv operátorait használjuk fel. Most hasonló konverziókat fogunk megnézni, de úgy, hogy az MCC18-as fordító függvényeit használjuk fel. Ez a fordító innen letölthető.
 

Függvények Leírások
atob Konvertál string-et byte-ba
atof Konvertál string-et float-ba
atoi Konvertál string-et int-be
atol Konvertál string-et long-ba
btoa Konvertál byte-ot string-be
itoa Konvertál int-et string-be
ltoa Long-ot konvertál string-be
rand Álvéletlen számot hoz létre
srand  
tolower Kisbetűket ad vissza
toupper Nagybetűket ad vissza
ultoa Előjelnélküli long-ot konvertál string-be

1. táblázat   Konverziós függvények (forrás)
 

Nézzük most meg néhány példa segítségével ezeknek a függvényeknek a használatát.
 

atoi()

Az első példában azt nézzük meg, hogy hogyan lehet string-ként ábrázolt egész számot egész típusra konvertálni. Ehhez felhasználjuk az atoi() függvényt. Először létrehozunk egy char típusú tömböt, és adunk ennek egy értéket ("12345"). Ezt alakítjuk át int típusra (1. ábra).


1. ábra   Sztringből készítünk int típust
 

Szimuláljuk le ezt a "C" programot, amelyben az "i" változó megkapja az atoi() függvény visszatérési értékét. A watch ablakban találjuk a futási eredményt (2. ábra).


2. ábra   Sztringből (t) készítünk int (i) típust
 

atob()

Most azt az esetet nézzük meg, amikor a string-ként megadott számot byte (unsigned char) típussá alakítjuk át. Fontos tudnunk, hogy ennek a számnak az ábrázolása nem haladhatja meg a 8 bitet (3. ábra).


3. ábra   Az atob() függvény használata
 

Az atob() függvény visszatérési típusa byte, és ennek az értéke megegyezik a "t"-vel, viszont már nem string-ként, hanem byte-ként ábrázoljuk. A szimulációs eredmény látható a watch ablakban (4 ábra).


4. ábra   Az atob() függvény szimulációjának eredménye
 

atof()

Most azt nézzük meg, hogy hogyan lehet átkonvertálni a sztring-ként ábrázolt számot float típusra. Ehhez az atof() függvényt használjuk fel (5. ábra).


5. ábra   String-et konvertálunk float-ba


A szimulációs eredmény a watch ablakban látható (6. ábra).


6. ábra   A watch ablakban látjuk a futási eredményt
 

itoa()

Végül alakítsunk át int típusú számot string-gé. Ehhez használjuk fel az itoa() függvényt (7. ábra). Ez a konverziós függvény void típusú, a két paramétere közül az egyik az átalakítandó (i) paraméter, a másik a visszaadott (t).


7. ábra   Int-te konvertálunk string-be (itoa()), illetve string-et int-be (atoi())
 

A 7. ábrán lévő program szimulációs eredménye látható a 8. ábrán lévő watch ablakban.


8. ábra   Szimulációs eredmény az itoa() és az atoi() függvények működéséről
 

Hasonlóképpen tudjuk a felhasználni a további konverziós függvényeket is (1. táblázat), amelynek a működése nem került itt bemutatásra.