|
1. Povezava zgornje in spodnje ravni V prejšnjem člankuZigbeejeva pot (1): Razbijanje temeljev, na kratko predstavimo Zigbee in njegovo razvojno okolje. V redu, zdaj ko so orodja dokončana, se pojavlja vprašanje: kako uporabiti to programsko in strojno opremo za pisanje programa, ki lahko teče? Ta članek je v bistvu namenjen odgovoru na zgornja vprašanja: Vzemimo majhen eksperiment "LED utripanja" kot primer, da predstavimo, kako konfigurirati IAR za razvoj programov, ki temeljijo na CC2430, in kako ga uporabljatiIARPišite in odpravljajte napake programov na spletu. 2. Konfiguracija IAR IAR je zmogljiva vgrajena razvojna platforma, ki podpira širok nabor čipov. Vsak projekt v IAR ima lahko svojo konfiguracijo, vključno s tipom naprave, skladom/skladom, povezovalnikom, razhroščevalnikom itd. (1) Ustvariti nov delovni prostor in projekt Najprej ustvarite novo mapo ledtest. Odpri IAR in izberi glavni meni File -> New -> Workspace, da ustvariš nov delovni prostor. Izberite Projekt -> Ustvari nov projekt -> Prazni projekt, kliknite OK in shranite projektno datoteko v mapo ledtest, imenovano ledtest.ewp (kot je prikazano spodaj).
(2) Konfiguracija splošnih možnosti Nastavitev tarče: Naprava: CC2430; Način kodiranja: Približno; Podatkovni model: Veliki; Klic konvencije:XDATA stack reetrant
Nastavitev kazalca podatkov: Število DPTR-jev: 1
Nastavitev sklada/kupa: Velikost sklada XDATA: 0x1FF
(3) Nastavitve povezovalca Datoteka ukazov Linker: Izberite lnk51ew_cc2430.xcl
(4) Nastavitve razhroščevalnika: Gonilnik: Texas Instruments (Ta eksperiment je pravo strojno odpravljanje napak, zato izberite TI; Če drugi programi želijo uporabljati IAR simulator, lahko izberete Simulator) Datoteka z opisom naprave: CC2430.ddf
V tem trenutku je konfiguracija IAR za ta eksperiment praktično končana, naslednje pa je uvod v njegovo implementacijo kodiranja. 3. Pisanje programske kode(1) Ustvariti nov procesni dokument Izberite File->New->File in ustvarite novo datoteko main.c. (2) Uvedba datotek z glavo Programi, ki temeljijo na CC2430, morajo vsebovati referenco na ioCC2430.h, ki določa preslikavo naslovov različnih posebnih funkcijskih registrov (SFR) CC2430. #include //引入CC2430所对应的头文件(包含各SFR的定义)
Ta datoteka je vgrajena v IAR (podobno kot stdio.h), premaknite miško nad to vrstico kode, kliknite z desnim klikom, izberiteOPen "ioCC2430.h"za ogled celotne vsebine te datoteke z glavo. (3) Določite LED pine Oglejte si shemo vezja razvojne plošče takole:
Vidimo lahko, da LED1~4 nadzorujejo pini P1_0~P4_0, zato lahko LED1, LED2, LED3 in LED4 definiramo kot pine P1_0, P2_0, P3_0 in P4_0. #define LED1 P1_0 // Definiraj LED1 kot kontrolo P1_0 priključka #define LED2 P1_1 // Definirajte LED2 kot P1_1 nadzor priključkov #define LED3 P1_2 // Definiraj LED3 kot P1_2 nadzor priključkov #define LED4 P1_3 // Definiraj LED4 kot P1_3 nadzor priključkov
(4) glavna funkcija Nato začnite pisati glavno funkcijo. Najprej je pred uporabo priključka P1.0~P1.4 potrebno nastaviti njegov delovni način in smer vhoda/izhoda, ki vključuje dva SFR-ja: P1SEL in P1DIR. P1SEL = 0x00; Nastavi P1 na običajen vhodno/izhodni priključek P1DIR |= 0x0F; Nastavite P1.0, P1.1, P1.2, P1.3 kot izhod
Zigbee nasveti CC2430 ima:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Skupaj 21 vhodno-izhodnih priključkov. Uporabljajo se lahko kot splošni digitalni vhodno-izhodni sistemi ali pa za povezovanje perifernih vhodnih prehodov, kot so ADC-ji, časovniki/števci ali USART-i. V SFR CC2430 obstajajo trije razredi registrov, ki jih je mogoče uporabiti za konfiguracijo teh vhodno-vhodnih vrat: (1)PxSEL(x je 0/1/2) :P izbira funkcije priključkov 0/P1/P2 0: Univerzalni numerični IO, 1: Periferni IO, privzeto je 0 (2)PxDIR(x je 0/1/2) :P smer vrat 0/P1/P2 0: vhod, 1: izhod, privzeto je 0 (3)PxINP(x je 0/1) :P vhodni način 0/P1 priključka 0: Potegni gor/dol, 1: Tri stanja, privzeto je 0 Potrebno ga je konfigurirati pri uporabi vhodno-vhodnega priključka, in če je privzet, se privzeta vrednost sistema vzame. Nato inicializiraj 4 LED diode in nastavi, da vse ugasnejo: led1 = 1; led2 = 1; led3 = 1; led4 = 1;
Na koncu zapišite kodo za učinek utripanja LED luči: led1 = 0; LED1 utripa Delay(10); led1 = 1; Delay(10);
led2 = 0; LED2 utripa Delay(10); led2 = 1; Delay(10);
led3 = 0; LED3 utripanje Delay(10); led3 = 1; Delay(10);
led4 = 0; LED4 utripanje Delay(10); led4 = 1; Delay(10);
Vključuje podfunkcijo zamika Delay(unsigned char n): void Delay(unsigned character n) { nepodpisani char i; unsigned int j; for(i = 0; I < n; i++) for(j = 1; j; j++) ; }
(5) Pregled kodeksa Zgornjo kodo združimo v eno celoto, kot sledi: //引入头文件
#include //引入CC2430所对应的头文件(包含各SFR的定义)
//定义LED引脚
#define vodil1 P1_0 //定义LED1为P1_0口控制
#define vod2 P1_1 //定义LED2为P1_1口控制
#define Led3 P1_2 //定义LED3为P1_2口控制
#define vodil 4 P1_3 //定义LED4为P1_3口控制 //延时子程序
prazninaZakasnitev(nepodpisano charn) {
nepodpisano chari;
nepodpisano intj;
za(i =0; I < n; i++)
za(j =1; j; j++) ;
}
prazninamain(praznina)
{ P1SEL =0x00; Nastavi P1 na običajen vhodno/izhodni priključek P1DIR |=0x0F; Nastavite P1.0, P1.1, P1.2, P1.3 kot izhod
led1 =1; //初始化,4个led灯全熄 led2 =1; led3 =1; led4 =1;
medtem ko(1) //开始循环 { led1 =0; //led1闪烁 Zakasnitev(10); led1 =1; Zakasnitev(10);
led2 =0; //led2闪烁 Zakasnitev(10); led2 =1; Zakasnitev(10);
led3 =0; //led3闪烁 Zakasnitev(10); led3 =1; Zakasnitev(10);
led4 =0; //led4闪烁 Zakasnitev(10); led4 =1; Zakasnitev(10); }
}
OK, koda za ta majhen eksperiment je napisana, ali ni zelo preprosta, hehe~ 4. Prevajanje in odpravljanje napak Izberite Project -> Make, prevedite kodo in če uspete, se prikaže naslednji izhod:
TiskZigbee razvojna plošča → razhroščevalnik → USB vmesnik za PCnato izberite Projekt -> Razhroščevanje, program pa se bo samodejno prenesel na ploščo. Nato izberite Debug -> Pojdite za začetek programa in videli boste 4 LED lučke, ki utripajo zaporedoma! Čeprav je to majhen eksperiment, ki je preveč preprost, da bi bil preprost, sem bil, ko ga je avtor uspešno uresničil, vseeno malo navdušen~ hehe! 5. Zaključek Na podlagi "eksperimenta utripanja LED luči" ta članek predstavi celoten proces implementacije, od konfiguracije IAR, pisanja programske kode do procesa prevajanja in odpravljanja napak. V naslednjem članku, ki temelji na razumevanju osnovnega procesa razvoja programa, bomo predstavili več osnovnih eksperimentov za razvoj CC2430Timer、Serijska komunikacija、Preobrazba v AD、Sistematično spanje in tudi čuvajiitd., zato ostanite z nami!
|