Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 9158|Odpoveď: 0

Zigbee Journey (2): Prvý program CC2430 – experiment s blikaním LED svetla

[Kopírovať odkaz]
Zverejnené 30. 10. 2014 23:15:39 | | | |
1. Prepojenie hornej a dolnej úrovne

     V predchádzajúcom článkuZigbee Journey (1): Rozbíjanie základov, stručne predstavujeme Zigbee a jeho vývojové prostredie. Dobre, teraz, keď sú nástroje hotové, vyvstáva otázka: ako použiť tento softvér a hardvér na napísanie programu, ktorý bude fungovať?

     Tento článok má v podstate odpovedať na vyššie uvedené otázky: Vezmime malý experiment "LED svetelného blikania" ako príklad na predstavenie, ako nakonfigurovať IAR tak, aby bolo vhodné na vývoj programov založených na CC2430, a ako ho používaťIARPíšte a ladíte programy online.

2. Konfigurácia IAR

     IAR je výkonná embedded vývojová platforma, ktorá podporuje širokú škálu čipov. Každý projekt v IAR môže mať svoju vlastnú konfiguráciu, vrátane typu zariadenia, zásobníka/zásobníka, linkera, debuggera a podobne.

(1) Vytvoriť nový pracovný priestor a projekt

     Najprv vytvorte nový priečinok ledtest. Otvorte IAR a vyberte hlavné menu File -> New -> Workspace, aby ste vytvorili nový pracovný priestor.

     Vyberte projekt -> Vytvoriť nový projekt -> Vyprázdniť projekt, kliknite na OK a uložte súbor projektu do priečinka ledtest s názvom ledtest.ewp (ako je uvedené nižšie).

(2) Konfigurácia všeobecných možností

       Nastavenie cieľa: Zariadenie: CC2430;

                         Režim kódu: Blízko;

                         Dátový model: Veľký;

                         Volanie konvencie:XDATA stack reetrant

     Nastavenie dátového ukazovateľa: Počet DPTR: 1

     Nastavenie zásobníka/haldy: Veľkosť zásobníka XDATA: 0x1FF

(3) Nastavenia linkera

     Príkazový súbor linkera: Vyberte lnk51ew_cc2430.xcl

(4) Nastavenia ladiča:

     Ovládač: Texas Instruments (Tento experiment je skutočné ladenie stroja, takže zvoľte TI; Ak iné programy chcú použiť IAR simulátor, môžete si vybrať Simulator)
     Súbor s popisom zariadenia: CC2430.ddf

      V tomto bode je konfigurácia IAR pre tento experiment v podstate ukončená a nasleduje úvod do implementácie jej kódovania.

3. Písanie programového kódu(1) Vytvoriť nový procesný dokument

      Vyberte File->New->File a vytvorte nový súbor main.c.

(2) Predstaviť súbory hlavičiek

      Programy založené na CC2430 musia obsahovať odkaz na ioCC2430.h, ktorý definuje adresné mapovanie rôznych špeciálnych funkčných registrov (SFR) CC2430.

#include         //引入CC2430所对应的头文件(包含各SFR的定义)

      Tento súbor je zabudovaný v IAR (podobne ako stdio.h), prejdite myšou na tento riadok kódu, kliknite pravým tlačidlom, vyberteOPen "ioCC2430.h"pre zobrazenie celého obsahu tohto hlavičkového súboru.

(3) Definovať LED piny

     Pozrite si schému zapojenia vývojovej dosky nasledovne:

     Je vidieť, že LED1~4 je riadený pinmi P1_0~P4_0, takže LED1, LED2, LED3 a LED4 možno definovať ako piny P1_0, P2_0, P3_0 a P4_0.

#define LED1 P1_0 // Definujte LED1 ako ovládanie P1_0 portu
#define LED2 P1_1 // Definujte LED2 ako P1_1 ovládanie portu
#define LED3 P1_2 // Definujte LED3 ako P1_2 ovládanie portu
#define LED4 P1_3 // Definujte LED4 ako P1_3 ovládanie portu

(4) Hlavná funkcia

     Ďalej začnite písať hlavnú funkciu.

     V prvom rade je pred použitím portu P1.0~P1.4 potrebné nastaviť jeho pracovný režim a smer vstupu/výstupu, ktorý zahŕňa dva SFR: P1SEL a P1DIR.

  P1SEL = 0x00;          Nastavte P1 na bežný I/O port
  P1DIR |= 0x0F;          Ako výstup nastavte P1.0, P1.1, P1.2, P1.3

Zigbee tipy
CC2430 má:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Celkovo 21 I/O portov. Môžu byť použité ako univerzálne digitálne I/O alebo na prepojenie periférnych IO, ako sú ADC, časovacie počítače alebo USART.
V SFR CC2430 existujú tri triedy registrov, ktoré možno použiť na konfiguráciu týchto IO portov:
(1)PxSEL(x je 0/1/2) :P výber portovej funkcie 0/P1/P2
                                0: Univerzálny numerický IO, 1: Periférny IO, predvolená hodnota je 0
(2)PxDIR(x je 0/1/2) :P smer portov 0/P1/P2
                                0: vstup, 1: výstup, predvolené je 0
(3)PxINP(x je 0/1) :P vstupný režim portu 0/P1
                                0: Pull/pull dole, 1: Tri stavy, predvolené je 0
Musí byť nakonfigurovaný pri používaní IO portu, a ak je predvolený, predvolená hodnota systému sa prijíma.

     Potom inicializujte 4 LED diódy a nastavte ich na zhasnutie všetkých:

  led1 = 1;   
  LED2 = 1;
  LED3 = 1;
  LED4 = 1;

     Nakoniec napíšte kód efektu blikania LED svetla:

    led1 = 0;  LED1 bliká
    Delay(10);
    led1 = 1;
    Delay(10);
   
    Led2 = 0;  LED2 bliká
    Delay(10);
    LED2 = 1;
    Delay(10);
   
    led3 = 0;  LED3 blikanie
    Delay(10);
    LED3 = 1;
    Delay(10);
   
    led4 = 0;  LED4 blikanie
    Delay(10);
    LED4 = 1;
    Delay(10);


     Zahŕňa oneskorujúcu podfunkciu Delay(unsigned character n):

void Oneskorenie (nepodpísané znaky n)  {
  nepodpísaný char i;
  neoznačený int j;
  pre(i = 0; I < n; i++)
    pre(j = 1; j; j++)
    ;
}   


(5) Prehľad kódu

      Spojte vyššie uvedený kód do jedného celku, nasledovne:

//引入头文件
#include         //引入CC2430所对应的头文件(包含各SFR的定义)

//定义LED引脚
#define viedol1 P1_0         //定义LED1为P1_0口控制
#define LED2 P1_1         //定义LED2为P1_1口控制
#define LED3 P1_2         //定义LED3为P1_2口控制
#define Lead4 P1_3         //定义LED4为P1_3口控制 //延时子程序
prázdnotaOneskorenie(nepodpísané charn)  {
  nepodpísané chari;
  nepodpísané intj;
  pre(i =0; I < n; i++)
    pre(j =1; j; j++)
    ;
}

prázdnotamain(prázdnota)
{
  P1SEL =0x00;         Nastavte P1 na bežný I/O port
  P1DIR |=0x0F;         Ako výstup nastavte P1.0, P1.1, P1.2, P1.3
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  LED3 =1;
  LED4 =1;
  
  zatiaľ čo(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Oneskorenie(10);
    led1 =1;
    Oneskorenie(10);
   
    led2 =0;  //led2闪烁
    Oneskorenie(10);
    led2 =1;
    Oneskorenie(10);
   
    LED3 =0;  //led3闪烁
    Oneskorenie(10);
    LED3 =1;
    Oneskorenie(10);
   
    LED4 =0;  //led4闪烁
    Oneskorenie(10);
    LED4 =1;
    Oneskorenie(10);
  }
}

     OK, kód na tento malý experiment je napísaný, nie je veľmi jednoduchý, hehe~

4. Kompilácia a ladenie

     Vyberte Project -> Make, skompilujte kód a ak je úspešný, zobrazí sa nasledujúci výstup:

     TlačZigbee Development Board → Debugger → USB rozhranie pre PCa potom vyberte Project -> Debug a program sa automaticky stiahne na dosku.

     Potom vyberte Debug -> Choďte spustiť program a uvidíte 4 LED svetlá blikajúce postupne! Aj keď je to malý experiment, ktorý je príliš jednoduchý na to, aby bol jednoduchý, keď si to autor úspešne uvedomil, bol som stále trochu nadšený~ hehe!

5. Záver

     Na základe "experimentu blikania LED svetlom" tento článok predstavuje celý proces implementácie od konfigurácie IAR, písania programového kódu až po proces kompilácie a ladenia. V nasledujúcom článku, na základe pochopenia základného procesu vývoja programu, predstavíme niekoľko základných experimentov pre vývoj CC2430ČasovačSériová komunikáciaKonverzia na ADSystematický spánok, ako aj strážne psyatď., tak zostaňte naladení!






Predchádzajúci:Zigbee Journey (1): Breaking of Land
Budúci:Zigbee Journey (3): Niekoľko dôležitých základných experimentov CC2430 – vonkajšie prerušenie
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com