Fórum témák

» Több friss téma
Cikkek » PicKit3 Debug Express - Tananyag kezdőknek I.rész
PicKit3 Debug Express - Tananyag kezdőknek I.rész
Szerző: zimpee, idő: Szept 11, 2011, Olvasva: 32108, Oldal olvasási idő: kb. 4 perc
Lapozás: OK   3 / 4


Ebben az órában megtanuljuk az MPLAB projektjeinek kezelését, és bekapcsolunk egy LEDet a 44 pines Demo Boardunkon. A lecke fájljai: ITT.
 
Pontosabban:
 - MPLAB IDE Project Wizard alkalmazását új projekt létrehozásához.
 - A TRISx SFR használatát egy pin bemenet/kimenetté állításához.
 - A LATx SFR használatát egy pin állapotának beállításához.
 
Kezdésként nyissuk meg az MPLAB IDE-t az asztali parancsikonnal. Új projekt létrehozásához kattintsunk a Project menü > Project Wizard menüpontjára. A varázsló Welcome! ablakának kell feltűnnie. Kattintsunk Nextre a folytatáshoz.
 

Mikrovezérlő kiválasztása
A következő ablakban kiválaszthatjuk az eszközünket. Mivel a PicKit3 Debug Express demópaneljét használjuk, válasszuk ki a PIC18F45K20 kontrollert eszköznek, és kattintsunk a Nextre.


Programnyelv kiválasztása
A PIC18F mikrovezérlőnket C nyelven fogjuk programozni, így válasszuk ki a "Microchip C18 Toolsuite"-t az Active Toolsuite lenyíló menüből. Kattintsunk a Nextre.


Új projekt létrehozása
Hozzuk létre a projekt fájlt az 1. óra anyagához tartozó mappában. Menjünk a X:/.../PICkit3 Debug Express Lessons/1 Hello LED/ mappába, és legyen a projektünk neve "Lesson 1 LED". Mentsük a projektet, kattintsunk a Nextre.


Már létező fájlok hozzáadása
A következő ablakban hozzáadhatunk már elkészített fájlokat a projektünkhöz. Ha szeretnénk, a projekt létrehozása után új fájlokat is létrehozhatunk igényeinknek megfelelően. A bal oldali panelen válasszuk ki a "01 Hello LED.c" fájlt, és kattintsunk az Add-ra. A fájl megjelenik a jobb oldalon. Kattintsunk a Nextre.


Összegzés
A varázsló utolsó ablakában nézzük át még egyszer a beállításokat, és kattintsunk a Finishre. Ahhoz, hogy a projektet megnézhessük MPLABban, használjük a View menü Project menüpontját. A címsorban láthatjuk a munkaterület nevét (Lesson 1 LED.mcw), a projekt fájlnevét pedig a bal oldali könyvtárstruktúra tetején (Lesson 1 LED.mcp).
A munkaterület fájl folyamatosan követi, milyen ablakok vannak nyitva az MPLAB-on belül, milyen programozó / hibakereső eszközök vannak kiválasztva, és hogyan állítottuk be őket, és egyéb adatokat tartalmaz a fejlesztőkörnyezetet illetően. A projekt fájl összegzi a fordításhoz szükséges source, header fájlokat, egyéb könyvtárakat, linker scripteket, és további szükséges fájlokat.


/** FIGYELEM! Az MPLAB 8.60-as verziója már nem használ linker scripteket. Egy linker scriptet használ a mikrovezérlőhöz, és azt be sem kell állítanunk. Így ez a rész nem szükséges, a továbbiakban is módosítom az eredeti anyagot ennek megfelelően. Ezekre amúgy a memóriaterületek beállításához, foglalásához volt szükség.
**/


További fájlokat adhatunk a projekthez, ha a projektablakon jobb gombbal kattintunk, majd kiválasztjuk az Add files menüpontot. Keressük meg az MPLAB C header könyvtárat (X:/.../MCC18/h/), és válasszuk ki a p18f45k20.h header fájlt. Így hozzáadtuk ezt is a projekthez, tehát, ha módosítjuk, akkor az eredeti fájl is megváltozik (Ha ezt nem szeretnénk, használjuk a File > Save as menüpontot, hogy elmentsünk egy példányt a projekt könyvtárában).
Végül mentsük el a projektet a File > Save Workspace menüponttal.




Lássuk a forráskódot!
Ha lefordítjuk a programunkat, és beégetjük a vezérlőbe, annyit látunk, hogy az RD7 I/O lábon lévő LED világít.

/** C O N F I G U R A T I O N   B I T S ******************************/

#pragma config FOSC = INTIO67
#pragma config WDTEN = OFF, LVP = OFF, MCLRE = OFF


/** I N C L U D E S **************************************************/
#include "p18f45k20.h"


/** D E C L A R A T I O N S ******************************************/


void main (void)
{

    TRISD = 0b01111111;     // PORTD 7-es lab kimenet (0);  6:0 lab bemenet (1)

    LATDbits.LATD7 = 1;        // LAT register bit 7 beallitasa a LED bekapcsolasahoz

    while (1)
    ;
   
}

Nézzük, hogy mi is történik pontosan:


#pragma config

    A pragma direktíva a fordítónak szól. Az MPLAB C fordítója használja implementáció független információk beállítására a fordításhoz. Itt a config direktívát használjuk, amivel beállítjuk a PIC18F Config Bitjeit. Ezekre részletesen a 2. órában térünk ki.
   
#include
    A p18f45k20.h fájlt 'includeolva' eszközspecifikus definíciókat adunk a programunkhoz. Itt vannak beállítva változónevek az egyes SFR-ekhez, és létrehoztak nekünk hasznos kis funkciókat, mint a Nop(), vagy a ClrWdt().
   
TRISD
    Ezen változóval érhetjük el a headerben definiált ugyanezen SFR-t. A TRIS (tri-state) regisztereket használjuk az egyes lábak irányának beállításához, jelen esetben RD7-RD0 lábakhoz. 0-s érték egy biten kimenetre állítja az adott bithez tartozó lábat, 1-es érték pedig bemenetre. A 0b01111111 bináris értékkel RD7 kimenet lesz, a többi láb pedig bemenet.
   
LATDbits.LATD7
    A LATDbits struktúrát szintén a header fájlban hoztuk létre, és segítségével hozzáférhetünk a LATD SFR egyes bitjeihez ( Van egy TRISDbits struktúra is a TRISD bitjeinek eléréséhez, továbbá a LATD változóval a teljes byte címezhető). A LATD regisztert használjuk az RD7-RD0 lábak állapotának beállításához, Egy bitet 1-be állítva magas, 0-ba állítva alacsony állapotba kerül a megfelelő láb. Azon lábakon, amelyeket bemenetre állítottunk, ez nincs hatással. A LATDbits.LATD7 1-be állításával bekapcsoljuk a 7-es LEDet a Demópanelen.
   
while (1)
    Ebben a példában semmi másra nincs szükségünk, nem kell visszatérni sehova, így biztosítanunk kell, hogy a vezérlő nem lép ki a main() függvényből. Egy végtelen ciklussal megakadályozzuk, hogy meghatározatlan memóriaterületekre lépjen a programunk, és valami galibát okozzon.
   

Fordítsuk le és programozzuk fel a példaprogramot s Project>Build All menüpont segítségével! A memóriakép a projekt könyvtárában egy .hex fájl lesz. A fordítás eredményét az Output ablakban láthatjuk a Build fülön.
Ha sikeres a fordítás, a BUILD SUCCEEDED szöveget kell itt látnunk, ha nem, valamit elrontottunk!

Figyelem, ha olyan hiba jelentkezik, miszerint nem található a p18f45k20.h header fájl, valószínűleg nem jelöltük be az MPLAB C telepítése közben a "Add header file path to MCC_INCLUDE environment variable" opciót. Ilyenkor újra kell telepítenünk a fordítót a megfelelő beállításokkal.

Felprogramozáshoz a PICkit3 programozót használjuk. A Programmer menüpontban válasszuk a Select Programmer alatt a PICkit3-t. Ekkor új fül jelenik meg az Output ablakban, ahol a programozó üzeneteit láthatjuk.



Kiválasztása után betöltődnek a megfelelő adatok, és a PICkit jelzi, hogy megtalálta a PIC18F45K20 vezérlőt a demópanelen. Ehhez azonban a PICkit3-at úgy kell beállítani, hogy tápellátást biztosítson a céláramkörnek. A Programmer>Settings menüpontra kattinva megnyílik egy ablak, kattintsunk a Power fülre, ellenőrizzük a feszültséget, és tegyünk pipát a "Power target circuit from PICkit3" dobozba. A feszültség 3.25 V kell, hogy legyen, ez a típus 3.3 V feszültséget visel el maximum. Kattintsunk az Ok gombra. Amint ez megtörtént, Az Output ablakban meg kell jelennie a Device ID-nek, vagyis a programozandó PICünk eszközazonosítójának.

A Programmer>Program menüpontra kattintva programozzuk fel a lefordított kódot a PICünkre. A sikerről/hibáról az Output ablakban kapunk visszajelzést.
Gratulálok! Létrehoztál egy új projektet, lefordítottad, felprogramoztad, és futtattad az első Microchip PIC18F projekted!

Tessék gyönyörködni az egy darab világító LEDben, hamarosan sokkal izgalmasabb dolgokat hozunk létre!


 


A cikk még nem ért véget, lapozz!
Következő: »»   3 / 4
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem