Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 9158|Válasz: 0

Zigbee Journey (2): Az első CC2430 program – LED fényvillogó kísérlet

[Linket másol]
Közzétéve 2014. 10. 30. 23:15:39 | | | |
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ásRendszerszintű alvás és őrfigyelőstb., szóval maradjatok velünk!






Előző:Zigbee utazás (1): Az úttörés
Következő:Zigbee Journey (3): Több fontos CC2430 alapkísérlet – külső megszakítás
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com