|
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õhieksperimenteTaimer、Seeriaside、AD konversioon、Süsteemne uni ning valvekoeradjne, nii et jääge lainel!
|