Mikrovezérlők használata során gyakran kell különböző átalakításokat végeznünk. Ezért most bemutatjuk a leggyakrabban előforduló konverziókat, amelyek fordítófüggetlenek.
A PIC18-as fordítóknál sincs "byte" típus, de ez nem is baj, hiszen mind a "byte", mind a "char" nyolcbites, viszont a "char" előjeles. Tehát a "byte" megfelel az "unsigned char"-nak.
Készítsünk egy projektet a PIC18F család egyik mikrovezérlőjére (pl.: PIC18F14K50). Ennek a projectnek a segítségével fogjuk az "int" típusú számot átalakítani "unsigned char"-rá. Hangsúlyozzuk, a most bemutatásra kerülő módszerek nem fordító-, vagy eszközfüggők. Vegyünk fel 2x2 byte (unsigned char) és egy int típusú változót (1. ábra).
1. ábra Int-ből byte-ok
A kívánt eredményt kétféleképpen fogjuk elérni. Először az átalakítandó számot elosztjuk 256-tal (felső byte), illetve modulo 256-tal (alsó byte). A modulo (maradék) osztás eredménye az "alsó" byte-ba kerül. Az "int" típusú eredmény két byte-on kerül ábrázolásra.
A másik megoldás az, amikor az átalakítandó számot balra léptetjük, illetve maszkoljuk. A szimulációs eredményen jól látható, hogy mind a két megoldás ugyanazt az eredményt adja (2. ábra).
2. ábra Szimulációs eredmények a watch ablakban
A "long" típusú változó négy byte-on kerül ábrázolásra, az átalakítása byte-okra ugyanúgy történik, mint az előző részben, itt is maszkolás és léptetés történt (3. ábra).
3. ábra Long-ból byte-ok
Ha szimuláljuk a programunk működését az MpLAB fejlesztőkörnyezetben, akkor a következő eredményt kapjuk (4. ábra).
4. ábra Szimulációs eredmény
Nézzük meg most azt az esetet, amikor nem egészből (int, long) kell byte-okat előállítanunk, hanem byte-okból egész típust.
Írjuk meg egy projekt keretén belül a következő programot (5. ábra). A felső byte-ot (amely az MSB bitet tartalmazza) megszorozzuk 256-tal, és az így kapott értékhez hozzáadjuk az alsó byte tartalmát.
5. ábra Byte-okból int
A program lefordítása és futtatása után a következő szimulációs eredményt kapjuk (6. ábra) :
6. ábra Szimulációs eredmény a Watch ablakban
A következő részben azt nézzük meg, hogy az MCC18-as fordító milyen lehetőségeket kínál a PIC18F-es mikrovezérlők programozóinak.
Megismerjük most a PIC18F mikrovezérlők megszakításkezelését, és készítünk két egyszerű példaprogramot is. Ezek az egy- és a kétszintű megszakításkezelést mutatják be, de sablonként is jól használhatók saját fejlesztéseknél is.. . . .
Ebben a cikkben egy kétsoros LCD felprogramozását és a hozzátartozó sajátfüggvényeket, makrókat mutatjuk be. Nem térünk ki viszont az LCD-k felépítésére, vezérlésére.. . . .
Ebben a cikkben egy kétsoros LCD felprogramozását és a hozzátartozó sajátfüggvényeket, makrókat mutatjuk be. Nem térünk ki viszont az LCD-k felépítésére, vezérlésére.. . . .