架构师_程序员_码农网

F Jelszó lekérése
Regisztráció

QQ登录

Csak egy lépés az induláshoz

Keresés
Nézet:6245|Válasz: 0
打印 上一主题 下一主题

Zigbee Journey (II): Az első CC2430 program - LED villogási kísérlet

[Link másolása]
L 跳转到指定楼层
az épület tulajdonosához
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|ReverseBrowse|Read Mode
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++) &nbsp


; 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:

2011021320413789.jpg
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!






Előző: [Hivatkozott] Zigbee utazás (I): a világ kezdete
Következő: [Jelentést] Zigbee utazás (III): Néhány fontos CC2430 alapkísérlet - külső megszakítások
A kód farmer hálózat, csak a gyakorlat során közzétett, technikai nehézségekbe ütközött, ne vezessen félre másokat.
Be kell jelentkezned, mielőtt hozzászólhatnál Bejelentkezés | Regisztráció

E z a verzió az integrál szabályok


KIZÁRÓLAG: A Code Farmer által közzétett minden szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra használható; a fenti tartalmak nem használhatók fel kereskedelmi vagy illegális célokra, ellenkező esetben minden következményt a felhasználók maguk viselnek. Ez az oldal információ a hálózatról, a szerzői jogi vitának semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltést követő 24 órán belül teljes mértékben el kell távolítania a számítógépéről. Ha tetszik a program, kérjük, támogassa az eredeti szoftvert, vásárolja meg a regisztrációt, és jobb valódi szolgáltatást kap. Ha bármilyen jogsértés történt, kérjük, lépjen kapcsolatba velünk e-mailben, hogy foglalkozzunk vele.

Mail To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-17 14:48

Gyors válaszVissza a tetejéreVissza a listához