|
1. A felső és alsó szintek összekapcsolása Az előző cikkbenZigbee utazás (1): A földek feltörése, röviden bemutatjuk a Zigbee-t és fejlesztési környezetét. Rendben, most, hogy az eszközök teljesek, felmerül a kérdés: hogyan lehet ezeket a szoftvereket és hardvereket felhasználni egy futóképes program megírására? Ez a cikk lényegében a fenti kérdésekre válaszol: Vegyük példának a "LED fényvillogás" kis kísérletét, hogy bemutassák, hogyan konfiguráljuk az IAR-t CC2430-alapú programok fejlesztéséhez való alkalmasságra, és hogyan kell használniIARÍrj és hibáztass programokat online. 2. IAR konfiguráció Az IAR egy erőteljes beágyazott fejlesztőplatform, amely számos chipet támogat. Minden IAR projektnek saját konfigurációja lehet, beleértve az eszköztípust, stacket/stacket, linkert, hibakeresőt stb. (1) Új munkaterület és projekt létrehozása Először hozz létre egy új mappát, ledtestet. Nyisd meg az IAR-t, és válaszd ki a főmenüt: Fájl -> Új -> Workspace új munkaterület létrehozásához. Válaszd ki a Project -> Create New Project -> Empty Project opciót, kattints OK gombra, és mentse el a projektfájlt a ledtest mappába, amelynek címe ledtest.ewp (ahogy alább látható).
(2) Általános beállítások konfigurálása Cél beállítás: Eszköz: CC2430; Kód mód: Közel; Adatmodell: Nagy; Konvenció hívása: XDATA verem reetrant
Adatmutató beállítás: DPTR-ek száma: 1
Stack/Heap beállítás: XDATA stack méret: 0x1FF
(3) Linker beállítások Linker parancsfájl: Válassza ki a lnk51ew_cc2430.xcl
(4) Debugger beállítások: Driver: Texas Instruments (Ez a kísérlet egy valódi gépi hibakeresés, szóval válaszd a TI-t; Ha más programok szeretnék használni az IAR szimulátort, választhatod a Simulatort) Eszköz leírási fájl:CC2430.ddf
Ekkor az IAR konfiguráció gyakorlatilag véget ért a kísérlethez, és az alábbiakban bevezető a kódolási megvalósításhoz. 3. Programkód írása(1) Új eljárási dokumentum létrehozása Válaszd ki a File->New->File-t, és hozz 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-ra, amely meghatározza a CC2430 különböző speciális funkcióregisztereinek (SFR-k) címleképezését. #include //引入CC2430所对应的头文件(包含各SFR的定义)
Ez a fájl az IAR-be van építve (hasonlóan az stdio.h-hoz), vidd az overet ezen kódsorra, jobb kattintással, válasszOPen "ioCC2430.h"Hogy megtekintsd ennek a fejlécfájlnak a teljes tartalmát. (3) Definiáljuk a LED tűket Tekintse meg a fejlesztőlap áramkörrajzát a következőképpen nézzük:
Látható, hogy a LED1~4-et P1_0~P4_0 tűk vezérlik, így a LED1, LED2, LED3 és LED4 P1_0, P2_0, P3_0 és P4_0 tűként definiálható. #define LED1 P1_0 // Definiáljuk a LED1-et a P1_0 portvezérlőként #define LED2 P1_1 // Definiáljuk a LED2-t P1_1 portvezérlőként #define LED3 P1_2 // Definiáljuk a LED3-at P1_2 portvezérlőként #define LED4 P1_3 // Definiáljuk a LED4-et P1_3 portvezérlőként
(4) fő funkció Ezután kezdd el a fő függvény megírását. Először is, a P1.0~P1.4 port használata előtt be kell állítani annak működési módját és bemeneti/kimeneti irányát, ami két SFR-t foglal magában: P1SEL és P1DIR. P1SEL = 0x00; Állítsd be a P1-et a normál I/O portra P1DIR |= 0x0F; Állítsd be a P1.0, P1.1, P1.2, P1.3 kimenetet
Zigbee tippek A CC2430 rendelkezik:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Összesen 21 I/O port. Használhatók általános célú digitális I/O-ként, vagy perifériás IO-k, például ADC-k, időzítő/számlálók vagy USART-ok csatlakoztatására is. A CC2430 SFR-jében három regiszterosztály található, amelyek használhatók ezeknek az IO portoknak a konfigurálásához: (1)PxSEL(x 0/1/2) :P 0/P1/P2 port funkcióválasztás 0: Univerzális numerikus IO, 1: Peripériás IO, alapértelmezett 0 (2)PxDIR(x 0/1/2) :P 0/P1/P2 port iránya 0: bemenet, 1: kimenet, az alapértelmezett 0 (3)PxINP(x 0/1) :P 0/P1 portos bemeneti mód 0: Húzd fel/húzd le, 1: Három állapot, alapértelmezett 0 Konfigurálni kell az IO port használatakor, és ha alapértelmezett, akkor a rendszer alapértelmezett értéke marad. Ezután inicializáld a 4 LED-et, és állítsd be őket, hogy mind kioltsanak: led1 = 1; led2 = 1; led3 = 1; led4 = 1;
Végül írd meg a LED fényvillogás effekt kódját: led1 = 0; LED1 villogás Delay(10); led1 = 1; Delay(10);
led2 = 0; LED2 villogás Delay(10); led2 = 1; Delay(10);
led3 = 0; LED3 villogás Delay(10); led3 = 1; Delay(10);
led4 = 0; LED4 villogás Delay(10); led4 = 1; Delay(10);
Ez egy késleltetési alfüggvényt tartalmaz: Delay(unsigned char n): void késleltetés (nem jelzett karakter n) { aláírás nélküli Char I; alárendellen int j; for(i = 0; I < n; i++) for(j = 1; j; j++) ; }
(5) Kód áttekintése Egyesítsük a fenti kódot egyetlen egészsé, a következőként: //引入头文件
#include //引入CC2430所对应的头文件(包含各SFR的定义)
//定义LED引脚
#define lead1 P1_0 //定义LED1为P1_0口控制
#define led2 P1_1 //定义LED2为P1_1口控制
#define lead3 P1_2 //定义LED3为P1_2口控制
#define lead4 P1_3 //定义LED4为P1_3口控制 //延时子程序
SemmiKésés(Aláírás nélkül charn) {
Aláírás nélkül chari;
Aláírás nélkül intj;
for(i =0; I < n; i++)
for(j =1; j; j++) ;
}
Semmimain(Semmi)
{ P1SEL =0x00; Állítsd be a P1-et a normál I/O portra P1DIR |=0x0F; Állítsd be a P1.0, P1.1, P1.2, P1.3 kimenetet
led1 =1; //初始化,4个led灯全熄 led2 =1; led3 =1; led4 =1;
miközben(1) //开始循环 { led1 =0; //led1闪烁 Késés(10); led1 =1; Késés(10);
led2 =0; //led2闪烁 Késés(10); led2 =1; Késés(10);
led3 =0; //led3闪烁 Késés(10); led3 =1; Késés(10);
led4 =0; //led4闪烁 Késés(10); led4 =1; Késés(10); }
}
Rendben, ennek a kis kísérletnek a kódja megíródott, nem nagyon egyszerű, hehe~ 4. Fordítás és hibakeresés Válaszd ki a Project -> Make funkciót, fordítsd le a kódot, és ha sikerül, a következő kimenet jelenik meg:
SajtóZigbee fejlesztő panel → hibakereső → USB interfész PC-hezmajd válaszd ki a Project -> Debug opciót, és a program automatikusan letöltődik a táblára. Ezután válaszd ki a Debug -> Go a program elindításához, és 4 LED lámpa villogó fény is felvált! Bár ez egy apró kísérlet, ami túl egyszerű ahhoz, hogy egyszerű legyen, amikor a szerző sikeresen rájött, még mindig kicsit izgatott voltam~ hehe! 5. Összegzés A "LED fényvillogó kísérlet" alapján ez a tanulmány bemutatja az egész megvalósítási folyamatot az IAR konfigurációjától, a programkód megírásától, valamint a fordítás és hibakeresés folyamatától. A következő cikkben, a program fejlesztésének alapvető folyamatának megértése alapján, bemutatunk néhány alapvető kísérletet a CC2430 fejlesztéséhezIdőzítő、Soros kommunikáció、AD átalakulás、Rendszerszintű alvás és őrfigyelőstb., szóval maradjatok velünk!
|