Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 9158|Atsakyti: 0

Zigbee Journey (2): Pirmoji CC2430 programa - LED lemputės mirksėjimo eksperimentas

[Kopijuoti nuorodą]
Paskelbta 2014-10-30 23:15:39 | | | |
1. Viršutinio ir apatinio lygių sujungimas

     Ankstesniame straipsnyjeZigbee kelionė (1): Breaking the Grounds, trumpai pristatome "Zigbee" ir jo kūrimo aplinką. Gerai, dabar, kai įrankiai yra baigti, kyla klausimas: kaip naudoti šią programinę ir techninę įrangą parašyti programą, kuri gali veikti?

     Šis straipsnis iš esmės skirtas atsakyti į aukščiau pateiktus klausimus: Paimkite nedidelį eksperimentą "LED lemputė mirksi" kaip pavyzdį, kad pristatytumėte, kaip sukonfigūruoti IAR, kad jis būtų tinkamas CC2430 pagrįstoms programoms kurti, ir kaip jį naudotiIARRašykite ir derinkite programas internete.

2. IAR konfigūracija

     IAR yra galinga įterptoji kūrimo platforma, palaikanti įvairiausius lustus. Kiekvienas IAR projektas gali turėti savo konfigūraciją, įskaitant įrenginio tipą, rietuvę / rietuvę, susiejimą, derintuvą ir kt.

(1) Sukurkite naują darbo sritį ir projektą

     Pirmiausia sukurkite naują aplanką ledtest. Atidarykite IAR ir pasirinkite pagrindinį meniu File -> New -> Workspace, kad sukurtumėte naują darbo sritį.

     Pasirinkite Projektas -> Sukurti naują projektą -> Ištuštinti projektą, spustelėkite Gerai ir išsaugokite projekto failą aplanke ledtest, pavadintame ledtest.ewp (kaip parodyta toliau).

(2) Konfigūruokite bendrąsias parinktis

       Tikslinis nustatymas: Įrenginys: CC2430;

                         Kodo režimas: netoliese;

                         Duomenų modelis: didelis;

                         Iškvietimo konvencija:XDATA rietuvės reetrant

     Duomenų rodyklės nustatymas: DPTR skaičius: 1

     Rietuvės / krūvos nustatymas: XDATA rietuvės dydis: 0x1FF

(3) Susiejimo nustatymai

     Linker komandų failas: pasirinkite lnk51ew_cc2430.xcl

(4) Derintuvo nustatymai:

     Vairuotojas: Texas Instruments (Šis eksperimentas yra tikras mašinų derinimas, todėl rinkitės TI; Jei kitos programos nori naudoti IAR simuliatorių, galite pasirinkti Simuliatorius)
     Įrenginio aprašymo failas:CC2430.ddf

      Šiuo metu šio eksperimento IAR konfigūracija iš esmės baigėsi, o toliau pateikiamas įvadas į jo kodavimo įgyvendinimą.

3. Programos kodo rašymas1) Naujo procesinio dokumento sukūrimas

      Pasirinkite File->New->File ir sukurkite naują failą main.c.

(2) Įveskite antraštės failus

      CC2430 pagrįstose programose turi būti nuoroda į ioCC2430.h, kuri apibrėžia įvairių CC2430 specialiųjų funkcijų registrų (SFR) adresų susiejimą.

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

      Šis failas yra integruotas į IAR (panašus į stdio.h), užveskite pelės žymeklį virš šios kodo eilutės, dešiniuoju pelės mygtuku spustelėkite, pasirinkiteOPen "ioCC2430.h", kad pamatytumėte visą šio antraštės failo turinį.

(3) Apibrėžkite LED kaiščius

     Peržiūrėkite kūrimo plokštės schemą taip:

     Galima pastebėti, kad LED1~4 valdomas atitinkamai P1_0~P4_0 kaiščiais, todėl LED1, LED2, LED3 ir LED4 gali būti apibrėžti kaip atitinkamai P1_0, P2_0, P3_0 ir P4_0 kaiščiai.

#define LED1 P1_0 // Apibrėžkite LED1 kaip P1_0 prievado valdiklį
#define LED2 P1_1 // Apibrėžkite LED2 kaip P1_1 prievado valdiklį
#define LED3 P1_2 // Apibrėžkite LED3 kaip P1_2 prievado valdymą
#define LED4 P1_3 // Apibrėžkite LED4 kaip P1_3 prievado valdiklį

(4) Pagrindinė funkcija

     Tada pradėkite rašyti pagrindinę funkciją.

     Visų pirma, prieš naudojant P1.0~P1.4 prievadą, būtina nustatyti jo darbo režimą ir įvesties/išvesties kryptį, kuri apima du SFR: P1SEL ir P1DIR.

  P1SEL = 0x00;          Nustatykite P1 į įprastą įvesties / išvesties prievadą
  P1DIR |= 0x0F;          Nustatykite P1.0, P1.1, P1.2, P1.3 kaip išvestį

Zigbee patarimai
CC2430 turi:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Iš viso 21 I/O prievadas. Jie gali būti naudojami kaip bendrosios paskirties skaitmeniniai įvesties / išvesties arba gali būti naudojami periferiniams IO, pvz., ADC, laiko / skaitikliams arba USART, prijungti.
CC2430 SFR yra trys registrų klasės, kurias galima naudoti šiems IO prievadams konfigūruoti:
(1)PxSEL(x yra 0/1/2) :P 0/P1/P2 prievado funkcijos pasirinkimas
                                0: universalus skaitmeninis IO, 1: periferinis IO, numatytasis yra 0
(2)PxDIR(x yra 0/1/2) :P 0/P1/P2 prievado kryptis
                                0: įvestis, 1: išvestis, numatytoji reikšmė yra 0
(3)PxINP(x yra 0/1) :P 0/P1 prievado įvesties režimas
                                0: patraukite aukštyn / patraukite žemyn, 1: trys būsenos, numatytasis yra 0
Jį reikia sukonfigūruoti naudojant IO prievadą, o jei jis yra numatytasis, imama numatytoji sistemos reikšmė.

     Tada inicijuokite 4 šviesos diodus ir nustatykite, kad visi užgestų:

  LED1 = 1;   
  LED2 = 1;
  led3 = 1;
  LED4 = 1;

     Galiausiai parašykite LED lemputės mirksėjimo efekto kodą:

    LED1 = 0;  LED1 mirksi
    Vėlavimas [10];
    LED1 = 1;
    Vėlavimas [10];
   
    LED2 = 0;  LED2 mirksi
    Vėlavimas [10];
    LED2 = 1;
    Vėlavimas [10];
   
    LED3 = 0;  Mirksi LED3
    Vėlavimas [10];
    led3 = 1;
    Vėlavimas [10];
   
    LED4 = 0;  Mirksi LED4
    Vėlavimas [10];
    LED4 = 1;
    Vėlavimas [10];


     Tai apima delsos pofunkciją Delay(unsigned char n):

void Delay(nepasirašytas char n)  {
  nepasirašytas Char I;
  nepasirašytas int j;
  for(i = 0; I < n; i++)
    for(j = 1; j; J++)
    ;
}   


(5) Kodo apžvalga

      Sujunkite aukščiau pateiktą kodą į vieną visumą taip:

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

//定义LED引脚
#define led1 P1_0         //定义LED1为P1_0口控制
#define led2 P1_1         //定义LED2为P1_1口控制
#define led3 P1_2         //定义LED3为P1_2口控制
#define led4 P1_3         //定义LED4为P1_3口控制 //延时子程序
tuščiaVėlavimas(nepasirašytas anglisn)  {
  nepasirašytas anglisi;
  nepasirašytas intj;
  dėl(i =0; I < n; i++)
    dėl(j =1; j; J++)
    ;
}

tuščiapagrindinis(tuščia)
{
  P1SEL =0x00;         Nustatykite P1 į įprastą įvesties / išvesties prievadą
  P1DIR |=0x0F;         Nustatykite P1.0, P1.1, P1.2, P1.3 kaip išvestį
  
  Šviesos diodas1 =1;   //初始化,4个led灯全熄
  LED2 =1;
  led3 =1;
  LED4 =1;
  
  Nors(1)     //开始循环
  {
    Šviesos diodas1 =0;  //led1闪烁
    Vėlavimas(10);
    Šviesos diodas1 =1;
    Vėlavimas(10);
   
    LED2 =0;  //led2闪烁
    Vėlavimas(10);
    LED2 =1;
    Vėlavimas(10);
   
    led3 =0;  //led3闪烁
    Vėlavimas(10);
    led3 =1;
    Vėlavimas(10);
   
    LED4 =0;  //led4闪烁
    Vėlavimas(10);
    LED4 =1;
    Vėlavimas(10);
  }
}

     Gerai, šio nedidelio eksperimento kodas buvo parašytas, ar tai nėra labai paprasta, hehe ~

4. Kompiliavimas ir derinimas

     Pasirinkite Projektas -> Sukurti, sukompiliuokite kodą ir, jei pavyks, pasirodys ši išvestis:

     Paspauskite"Zigbee" kūrimo plokštė → derintuvas → USB sąsaja kompiuteriuiir tada pasirinkite Projektas -> Derinimas, ir programa bus automatiškai atsisiųsta į lentą.

     Tada pasirinkite Derinti -> Eiti, kad paleistumėte programą, ir pamatysite paeiliui mirksinčias 4 LED lemputes! Nors tai yra nedidelis eksperimentas, kuris yra per paprastas, kad būtų paprastas, kai autorius sėkmingai suprato, aš vis dar šiek tiek susijaudinęs ~ hehe!

5. Išvada

     Remiantis "LED šviesos mirksėjimo eksperimentu", šis straipsnis supažindina su visu diegimo procesu nuo IAR konfigūravimo, programos kodo rašymo ir kompiliavimo bei derinimo proceso. Kitame straipsnyje, remdamiesi pagrindinio programos kūrimo proceso supratimu, pristatysime keletą pagrindinių CC2430 kūrimo eksperimentųLaikmatisNuoseklusis ryšysAD konversijaSistemingas miegas ir sarginiai šunysir t.t., todėl sekite naujienas!






Ankstesnis:Zigbee kelionė (1): Breaking the Ground
Kitą:Zigbee kelionė (3): Keletas svarbių CC2430 pagrindinių eksperimentų - išorinis pertraukimas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com