| I. Folytatjuk ott, ahol abbahagytuk Az előző cikkben , a "Zigbee utazás (I): A kezdet" címűben röviden bemutattuk a Zigbee-t és annak fejlesztőkörnyezetét, OK, most, hogy az eszközök elkészültek, felmerül a kérdés: hogyan használjuk a szoftvert és a hardvert, hogy futtatható programot írjunk? Ez a cikk alapvetően a fenti kérdés megválaszolására szolgál: a "LED fény villogására", mint egy kis kísérlet példájára, hogyan kell konfigurálni az IAR-t a CC2430 alapú programok fejlesztéséhez, hogyan kell használni az IAR-t a program online írásához és hibakereséséhez. Az IAR konfigurálása Az IAR egy nagy teljesítményű beágyazott fejlesztési platform, amely sokféle chipet támogat, és az IAR-ban minden projektnek saját konfigurációja lehet, beleértve az Eszköz típusát, a Heap/Stack, a Linker, a Debugger stb. (1) Új munkaterület és projekt Először is hozzon létre egy új mappát ledtest, nyissa meg az IAR-t, válassza a főmenü File -> New -> Workspace menüpontot egy új munkaterület létrehozásához. Válassza a Project -> Create New Project -> Empty Project (Projekt -> Új projekt létrehozása -> Üres projekt) lehetőséget, kattintson az OK gombra, és mentse a projektfájlt a ledtest mappába, melynek neve: ledtest.ewp (mint alább). (2) Általános beállítások konfigurálása Célbeállítás: Eszköz: CC2430; Kódolási mód: Közel; Adatmodell: Nagy; Hívási konvenció: XDATA stack reetrant
Adatmutató beállítása: DPTR-ek száma: 1
Stack/Heap beállítás: XDATA stack mérete: 0x1FF (3) Linker beállítások Linker parancsfájl: select lnk51ew_cc2430.xcl
(4) A hibakereső beállításai: Driver: Texas Instruments (ez a kísérlet a valódi gépi hibakereséshez, tehát TI-t válasszuk; ha más eljárásokkal az IAR emulátor, opcionális Simulator használata) Device Leírás fájl: CC2430.ddf
Ezen a ponton az IAR konfigurációja ehhez a kísérlethez lényegében véget ért, a következőkben bemutatjuk annak kódolási megvalósítását. Harmadszor, a programkód elkészítése(1) Új programfájl Válassza a Fájl->Új->Fájl menüpontot, hozzon létre egy új main.c fájlt. (2) Fejlécfájlok bevezetése A CC2430 alapú programoknak tartalmazniuk kell egy hivatkozást az ioCC2430.h állományra, amely meghatározza a CC2430 különböző típusú speciális funkcióregisztereinek (SFR) címleképezését. #include //Bevezetjük a CC2430-nak megfelelő fejlécfájlt (tartalmazza az egyes SFR-ek definícióját). Ez a fájl be van építve az IAR-ba (hasonlóan az stdio.h-hoz), az egérrel erre a kódsorra, jobb klikk, OPen "ioCC2430.h", akkor láthatja a fejlécfájl teljes tartalmát. (3) Definiálja a LED csapokat Ellenőrizze a fejlesztői kártya áramköri diagramját, az alábbiak szerint:
Ismeretes, hogy a led1~4-et a P1_0~P4_0 csapok vezérlik, így a led1, led2, led3, led4-et P1_0, P2_0, P3_0, P4_0 csapokként definiálhatjuk. #define led1 P1_0 //define led1 mint P1_0 port vezérlés #define led2 P1_1
//define led2 mint P1_1 port vezérlés #define led3 P1_2 //define led3 mint P1_2 port vezérlés #define led4 P1_3 //define led4 a P1_3 port vezérléséhez (4) Fő funkció Ezután kezdjük el a főfüggvény megírását. Először is a P1.0~P1.4 portok használata előtt be kell állítania a munkamódot és a be-/kimeneti irányt, ami két SFR-t foglal magában: P1SEL, P1DIR. P1SEL = 0x00; //Szokásos I/O portként állítja be a P1-et P1DIR |= 0x0F; & nbsp; //P1.0 P1.1 P1.2 P1.3 kimenetként való beállítása Zigbee tippek A CC2430 rendelkezik P0_0 ~ P0_7, P1_0 ~ P1_7, P2_0 ~ P2_7 összesen 21 I/O porttal. Ezek általános célú digitális I/O-ként vagy perifériás IO-k, például ADC, időzítő / számláló vagy USART csatlakoztatására használhatók. A CC2430 SFR-je háromféle regisztert tartalmaz, amelyekkel ezek az IO portok konfigurálhatók: ①PxSEL (x 0/1/2): P0/P1/P2 port funkció kiválasztása. PxSEL (x 0/1/2): P0/P1/P2 port funkció kiválasztása nbsp;0: általános célú digitális IO, 1: perifériás IO, alapértelmezett alapértelmezett 0 ② PxDIR (x 0/1/2): A P0/P1/P2 port iránya. & nbsp;0: bemenet, 1: kimenet, alapértelmezett alapértelmezett 0 ③PxINP (x 0/1): P0/P1 port bemeneti üzemmódja 0: fel, 1: kimenet, alapértelmezett alapértelmezett 0 nbsp;0: pull-up/down, 1: tri-state, alapértelmezett alapértelmezett 0 Az IO port használatakor konfiguráció szükséges, ha alapértelmezett, akkor vegye át a rendszer alapértelmezett értékét. Ezután inicializálja a 4 LED-et, állítsa őket mindegyiket ki:
led1 = 1; led2 = 1; led3 = 1; led4 = 1. Végül írja meg a LED villogó effekt kódot:
led1 = 0; //led1 villog Delay(10); led1 = 1; Delay(10); led2
= 0; //led2 villog Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 villog Delay(10); /
//led3 villog Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 villog &
nbsp; Delay(10); led4 = 1; Delay(10);
Ez egy Delay(unsigned char n) késleltetési alfüggvényt foglal magában:
v oid Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++)  
; for(j = 1; j; j++) ; } (5) A kód áttekintése Kombináljuk a fenti kódot az alábbiak szerint: //A fejlécfájlok bevezetése #include //bevezetjük a CC2430-nak megfelelő fejlécfájlt (beleértve az egyes SFR-ek definícióját).
// A LED-tüskék definiálása #define led1 P1_0 //define LED1 a P1_0 port vezérléséhez #define led2 P1_1 //define LED2 a P1_1 port vezérléséhez #define led3 P1_2 //define LED3 mint P1_2 port vezérlése #define led4 P1_3 //define LED4 a P1_3 port vezérléséhez //elhalasztási alprogram void Delay (unsigned char n) { { unsigned char i. unsigned int j. for (i = 0; i < n; i++) for (j = 1; j; j++) ; }
void main (void ) { P1SEL = 0x00; //P1 normál I/O portként való beállítása P1DIR |= 0x0F; //P1.0 P1.1 P1.2 P1.3 kimenetként való beállítása led1 = 1; //inicializálás, mind a 4 led világít ki. led2 = 1; //inicializálás, mind a 4 led kikapcsolva led3 = 1; led4 = 1; //inicializálás, mind a 4 led kikapcsolva led2 = 1; led3 = 1; led4 = 1; //inicializálás, mind a 4 led kikapcsolva while(1 ) //kezdjük a ciklust { led1 = 0; //led1 villog Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 ) delay(10); led1 = 1; //led1 villog Delay (10 ). led2 = 0; //led2 villog Delay (10 ); led2 = 1; //led2 villog led2 = 1; //led2 villog Delay (10 ). led3 = 0; //led3 villog Delay (10 ); led3 = 1; //led3 villog led3 = 1; //led3 villog Delay (10 ). led4 = 0; //led4 villog Delay (10 ); led4 = 1; //led4 villog led4 = 1; //led4 villog Delay (10 ); //Delay (10 ) } }
OK, a kódot ehhez a kis kísérlethez írtam, nem túl egyszerű ah, hehe~! Negyedszer, fordítás és hibakeresés Válassza a Project -> Make menüpontot, fordítsa le a kódot, ha sikeres, akkor a következő kimenet jelenik meg:
c
Csatlakoztassa a Zigbee eszközt a következő sorrendben: Zigbee fejlesztői kártya → Debugger → PC USB portja , majd válassza a Projekt -> Debug, a program automatikusan letöltődik a fejlesztői kártyára. Ezután válassza a Debug -> Go lehetőséget a program indításához, és látni fogja, hogy a 4 LED egymás után villog! Bár ez egy egyszerű nem lehet egyszerűbb kis kísérletek, de amikor sikerült elérni, vagy egy kis izgatott ~ huh! V. Következtetés Ebben a dokumentumban a "LED fény villogó kísérlet", mint az alap, illetve az IAR konfigurációjától, a programkód elkészítésétől, valamint a fordítási és hibakeresési folyamat bemutatja a teljes végrehajtási folyamatot. A következő, ez lesz a fejlesztési eljárások alapvető folyamatának megértésében, amely az időzítők, a soros kommunikáció, az AD konverzió, a rendszer alvása és a watchdog stb., tehát maradjon hangolva! |