See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 9158|Vastuse: 0

Zigbee teekond (2): Esimene CC2430 programm – LED-valguse vilkumise katse

[Kopeeri link]
Postitatud 30.10.2014 23:15:39 | | | |
1. Ülemiste ja alumiste korruste ühendamine

     Eelnevas artiklisZigbee teekond (1): Maade murdmine, tutvustame lühidalt Zigbeed ja selle arenduskeskkonda. Nüüd, kui tööriistad on valmis, tekib küsimus: kuidas kasutada neid tarkvara ja riistvara, et kirjutada programm, mis suudab töötada?

     See artikkel on põhimõtteliselt vastuseks ülaltoodud küsimustele: Võtame näiteks väikese eksperimendi "LED-valguse vilkumine", et tutvustada, kuidas seadistada IAR-i sobivaks CC2430-põhiste programmide arendamiseks ja kuidas seda kasutadaIARKirjuta ja silu programme veebis.

2. IAR konfiguratsioon

     IAR on võimas sisseehitatud arendusplatvorm, mis toetab väga erinevaid kiipe. Igal IAR-i projektil võib olla oma konfiguratsioon, sealhulgas seadmetüüp, virn/virn, linker, silur jne.

(1) Loo uus tööruum ja projekt

     Esiteks loo uus kausta ledtest. Ava IAR ja vali põhimenüü Fail -> Uus -> Tööruum, et luua uus tööruum.

     Vali Projekt -> Loo uus projekt -> Tühjenda projekt, klõpsa OK ja salvesta projektifail ledtesti kausta nimega ledtest.ewp (nagu allpool näidatud).

(2) Seadista üldised valikud

       Sihtmärgi seadmine: Seade: CC2430;

                         Koodirežiim: Lähedal;

                         Andmemudel: Suur;

                         Kutsumise konventsioon:XDATA virna reetrant

     Andmeosuti seadistus: DPTR-ide arv: 1

     Virna/kuhja seadistus: XDATA virna suurus: 0x1FF

(3) Linkeri seaded

     Linkeri käsufail: Vali lnk51ew_cc2430.xcl

(4) Siluri seaded:

     Driver: Texas Instruments (See eksperiment on päris masina silumine, seega vali TI; Kui teised programmid soovivad kasutada IAR simulaatorit, võid valida Simulaatori)
     Seadme kirjeldusfail:CC2430.ddf

      Praeguseks on selle eksperimendi IAR konfiguratsioon sisuliselt lõppenud ning järgnevalt tutvustatakse selle kodeerimise rakendust.

3. Programmikoodi kirjutamine(1) Loo uus menetluslik dokument

      Vali File->New->File ja loo uus fail main.c.

(2) Tutvusta päise faile

      CC2430-põhised programmid peavad sisaldama viidet ioCC2430.h-le, mis määratleb CC2430 erinevate erifunktsiooniregistrite (SFR) aadressikaardistuse.

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

      See fail on sisseehitatud IAR-i (sarnane stdio.h-le), liigu hiirega selle koodirea kohale, tee paremklõps, valiAva "ioCC2430.h"et näha selle päise faili täielikku sisu.

(3) Määratle LED-tihvtid

     Vaata arendusplaadi skeemi järgmiselt:

     On näha, et LED1~4 juhitakse vastavalt tihvtide P1_0~P4_0 abil, seega saab LED1, LED2, LED3 ja LED4 määratleda tihvtidena P1_0, P2_0, P3_0 ja P4_0 vastavalt.

#define LED1 P1_0 // Defineeri LED1 kui P1_0 pordi juhtimine
#define LED2 P1_1 // Defineeri LED2 kui P1_1 pordi juhtimine
#define LED3 P1_2 // Defineeri LED3 kui P1_2 pordi juhtimine
#define LED4 P1_3 // Defineeri LED4 kui P1_3 pordi juhtimine

(4) peamine funktsioon

     Järgmisena alusta põhifunktsiooni kirjutamist.

     Esiteks, enne P1.0~P1.4 pordi kasutamist tuleb määrata selle töörežiim ja sisend/väljund suund, mis hõlmab kahte SFR-i: P1SEL ja P1DIR.

  P1SEL = 0x00;          Sea P1 tavalisele I/O pordile
  P1DIR |= 0x0F;          Sea väljundiks P1.0, P1.1, P1.2, P1.3

Zigbee Tips
CC2430-l on:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Kokku 21 I/O porti. Neid saab kasutada üldotstarbeliste digitaalsete I/O-dena või kasutada perifeersete IO-de, nagu ADC-d, ajastus-/loendurid või USART-id, ühendamiseks.
CC2430 SFR-is on kolm registriklassi, mida saab kasutada nende IO portide seadistamiseks:
(1)PxSEL(x on 0/1/2) :P 0/P1/P2 pordi funktsiooni valik
                                0: Universaalne numbriline IO, 1: Perifeerne IO, vaikimisi on 0
(2)PxDIR(x on 0/1/2) :P 0/P1/P2 pordi suund
                                0: sisend, 1: väljund, vaikimisi on 0
(3)PxINP(x on 0/1) :P 0/P1 pordi sisendrežiim
                                0: Tõmba üles/tõmba alla, 1: Kolm olekut, vaikimisi on 0
See tuleb seadistada IO pordi kasutamisel ja kui see on vaikimisi, võetakse süsteemi vaikimisi väärtus.

     Seejärel initsialiseeri 4 LED-i ja seadista need kõik kustuma:

  led1 = 1;   
  led2 = 1;
  led3 = 1;
  led4 = 1;

     Lõpuks kirjuta LED-valguse vilkumise efektikood:

    led1 = 0;  LED1 vilgub
    Delay(10);
    led1 = 1;
    Delay(10);
   
    led2 = 0;  LED2 vilgub
    Delay(10);
    led2 = 1;
    Delay(10);
   
    led3 = 0;  LED3 vilkumine
    Delay(10);
    led3 = 1;
    Delay(10);
   
    led4 = 0;  LED4 vilkumine
    Delay(10);
    led4 = 1;
    Delay(10);


     See hõlmab viivituse alamfunktsiooni Delay(unsigned char n):

void viivitus (märgistamata tähemärk n)  {
  allkirjastamata Char I;
  allkirjastamata INT J;
  for(i = 0; Ma < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Koodi ülevaade

      Ühenda ülaltoodud kood üheks tervikuks järgmiselt:

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

//定义LED引脚
#define juhtis1 P1_0         //定义LED1为P1_0口控制
#define juhtis2 P1_1         //定义LED2为P1_1口控制
#define juhtis3 P1_2         //定义LED3为P1_2口控制
#define juhtis4 P1_3         //定义LED4为P1_3口控制 //延时子程序
tühiViivitus(Allkirjastamata charn)  {
  Allkirjastamata chari;
  Allkirjastamata intj;
  for(i =0; Ma < n; i++)
    for(j =1; j; j++)
    ;
}

tühipea(tühi)
{
  P1SEL =0x00;         Sea P1 tavalisele I/O pordile
  P1DIR |=0x0F;         Sea väljundiks P1.0, P1.1, P1.2, P1.3
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  led4 =1;
  
  samal ajal(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Viivitus(10);
    led1 =1;
    Viivitus(10);
   
    led2 =0;  //led2闪烁
    Viivitus(10);
    led2 =1;
    Viivitus(10);
   
    led3 =0;  //led3闪烁
    Viivitus(10);
    led3 =1;
    Viivitus(10);
   
    led4 =0;  //led4闪烁
    Viivitus(10);
    led4 =1;
    Viivitus(10);
  }
}

     Olgu, selle väikese eksperimendi kood on kirjutatud, kas pole väga lihtne, hehe~

4. Kompileerimine ja silumine

     Vali Project -> Make, kompileeri kood ja kui õnnestub, ilmub järgmine väljund:

     AjakirjandusZigbee arendusplaat → silur → USB-liides arvutileja seejärel vali Project -> Debug, ning programm laaditakse automaatselt tahvlile alla.

     Seejärel vali Debug -> Go programmi käivitamiseks ja näed järjest 4 LED-tuld vilkumas! Kuigi see on väike katse, mis on liiga lihtne, et olla lihtne, olin ma siiski, kui autor selle edukalt realiseeris, ikkagi natuke elevil~ hehe!

5. Kokkuvõte

     Põhinedes "LED-valguse vilkumise eksperimendil", tutvustab see artikkel kogu rakendusprotsessi alates IAR-i konfiguratsioonist, programmikoodi kirjutamisest kuni kompileerimise ja silumise protsessi. Järgmises artiklis, tuginedes programmi arendamise põhiprotsessi mõistmisele, tutvustame mitmeid CC2430 arenduse põhieksperimenteTaimerSeeriasideAD konversioonSüsteemne uni ning valvekoeradjne, nii et jääge lainel!






Eelmine:Zigbee teekond (1): Tee rajamine
Järgmine:Zigbee teekond (3): Mitmed olulised CC2430 põhieksperimendid – väline katkestus
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com