架构师_程序员_码农网

V Gauti slaptažodį
Užsiregistruoti

QQ登录

Tik vienas žingsnis, kad pradėtumėte

Paieška
Peržiūrėti:6245|Atsakyti: 0
打印 上一主题 下一主题

Zigbee kelionė (II): Pirmoji CC2430 programa - LED mirksėjimo eksperimentas

[Kopijuoti nuorodą]
K 跳转到指定楼层
pastato savininkui
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|Atvirkštinisnaršymas| Skaitymo režimas
I. Tęsiame tai, ką baigėme

Ankstesniame straipsnyje "Zigbee kelionė (I): pradžia" trumpai pristatėme "Zigbee" ir jos kūrimo aplinką, gerai, dabar, kai įrankiai baigti, kyla klausimas: kaip panaudoti programinę ir techninę įrangą, kad parašytume paleidžiamą programą?

Šiame straipsnyje iš esmės siekiama atsakyti į minėtą klausimą: į "LED lemputės mirksėjimą" kaip nedidelio eksperimento pavyzdį, kaip sukonfigūruoti IAR CC2430 pagrįstoms programoms kurti, kaip naudoti IAR programai rašyti ir derinti internete.

IAR konfigūravimas

IAR yra galinga įterptųjų programų kūrimo platforma, palaikanti daugelio rūšių lustus, o kiekvienas IAR projektas gali turėti savo konfigūraciją, įskaitant įrenginio tipą, Heap/Stack, Linker, Debugger ir t. t.

(1) Nauja darbo erdvė ir projektas

Pirmiausia sukurkite naują aplanką ledtest, atidarykite IAR, pasirinkite pagrindinį meniu File (Failas) -> New (Naujas) -> Workspace (Darbo vieta), kad sukurtumėte naują darbo vietą.

Pasirinkite Project (projektas) -> Create New Project (sukurti naują projektą) -> Empty Project (tuščias projektas), spustelėkite OK ir išsaugokite projekto failą aplanke ledtest, pavadintą taip: ledtest.ewp (kaip nurodyta toliau).

(2) Sukonfigūruokite bendrąsias parinktis

Tikslinės nuostatos: Įrenginys: CC2430;

Kodo režimas: Netoli;

Duomenų modelis: Didelis;

Iškvietimo konvencija: XDATA stekas reetrantas

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

Stack/Heap nustatymas: XDATA kamino dydis: 0x1FF

(3) Susiejimo nustatymai

Susiejimo komandos failas: select lnk51ew_cc2430.xcl

(4) Derintuvo nustatymai:


Jei norite naudoti IAR emuliatorių, pasirinktinai Simuliatorius) Įrenginys Aprašymo failas: CC2430.ddf

Šiuo metu IAR konfigūracija šiam eksperimentui iš esmės baigta, toliau pristatomas jos kodavimo įgyvendinimas.

Trečia, programos kodo parengimas(1) Naujas programos failas

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

(2) Įveskite antraštinius failus

CC2430 pagrindu sukurtose programose turi būti nuoroda į ioCC2430.h, kurioje apibrėžiamas įvairių tipų CC2430 specialiųjų funkcijų registrų (SFR) adresų atvaizdavimas.

#include //Įveskite CC2430 atitinkantį antraštės failą (jame yra kiekvieno SFR apibrėžimas)

Šis failas yra integruotas į IAR (panašiai kaip stdio.h), pelės žymekliu palieskite šią kodo eilutę, spustelėkite dešinįjį pelės klavišą, pasirinkite OPen "ioCC2430.h", galėsite pamatyti visą šio antraštinio failo turinį.

(3) Apibrėžkite šviesos diodų kaiščius

Patikrinkite kūrimo plokštės principinę schemą, kaip parodyta toliau:

Yra žinoma, kad led1~4 yra valdomi atitinkamai kaiščiais P1_0~P4_0, todėl galime apibrėžti led1, led2, led3, led4 atitinkamai kaip kaiščius P1_0, P2_0, P3_0, P4_0.


#define led1 P1_0 //apibrėžkite LED1 kaip P1_0 prievado valdymą #define led2 P1_1

//define led2 kaip P1_1 prievado valdymas #define led3 P1_2 //define led3 kaip P1_2 prievado valdymas #define led4
P1_3 //define led4 P1_3 prievado valdymui

(4) Pagrindinė funkcija

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

Pirmiausia, prieš naudojant P1.0~P1.4 prievadus, reikia nustatyti jų darbo režimą ir įvesties/išvesties kryptį, o tam reikia dviejų SFR: P1SEL, P1DIR.


P1SEL = 0x00; /Nustatykite P1 kaip įprastą įvesties ir išvesties prievadą P1DIR |= 0x0F; & nbsp; /Nustatyti P1.0 P1.1 P1.2 P1.3 kaip išėjimus

Zigbee patarimai
CC2430 turi P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7, iš viso 21 įvesties / išvesties prievadą. Juos galima naudoti kaip bendrosios paskirties skaitmenines įvesties/išvesties jungtis arba prijungti periferines įvesties/išvesties operacijas, pavyzdžiui, ADC, laikmatį/skaitiklį arba USART.
CC2430 SFR yra trijų tipų registrai, kuriuos galima naudoti šiems IO prievadams konfigūruoti:
①PxSEL (x yra 0/1/2 ): P0/P1/P2 prievado funkcijos pasirinkimas
PxSEL (x yra 0/1/2): P0/P1/P2 prievado funkcijos pasirinkimas nbsp;0: bendrosios paskirties skaitmeninis IO, 1: periferinis IO, numatytoji reikšmė pagal nutylėjimą yra 0
PxDIR (x yra 0/1/2): P0/P1/P2 prievado kryptis
& nbsp;0: įvestis, 1: išvestis, numatytoji reikšmė yra 0
③PxINP (x yra 0/1): P0/P1 prievado įvesties režimas
 0: įvestis, 1: išvestis, numatytoji reikšmė 0 nbsp;0: ištraukiamasis / žeminamasis, 1: trijų būsenų, numatytoji reikšmė pagal nutylėjimą yra 0
Konfigūracija reikalinga naudojant IO prievadą, jei numatytoji reikšmė, tuomet imkite sistemos numatytąją reikšmę.

Tada inicializuokite 4 šviesos diodus, nustatykite, kad jie visi būtų išjungti:




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

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






led1 = 0; //led1 mirksi Delay(10); led1 = 1; Delay(10); led2




= 0; //led2 mirksi Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 mirksi Delay(10); /





//led3 mirksi Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 mirksi &


nbsp; Delay(10); led4 = 1; Delay(10);


Tai apima uždelsimo subfunkciją Delay(unsigned char n):





v oid Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++) &nbsp


; for(j = 1; j; j++) ; }

(5) Kodo apžvalga

Sujunkite pirmiau pateiktą kodą į visumą, kaip parodyta toliau:

//Įveskite antraštinius failus
#include //įveskite CC2430 atitinkantį antraštinį failą (įskaitant kiekvieno SFR apibrėžimą)

// Apibrėžkite šviesos diodų kaiščius
#define led1 P1_0 //apibrėžkite LED1, skirtą P1_0 prievadui valdyti
#define led2 P1_1 //definuokite LED2 kaip P1_1 prievado valdymą
#define led3 P1_2 //definuokite LED3 kaip P1_2 prievado valdymą
#define led4 P1_3 //define LED4 P1_3 prievado valdymui //delay paprogramė
void Delay (unsigned char n) {
unsigned char i.
unsigned int j.
for (i = 0; i < n; i++)
for (j = 1; j; j; j++)
;
}

void main (void )
{
P1SEL = 0x00; /Nustatykite P1 kaip įprastą įvesties/išvesties prievadą
P1DIR |= 0x0F; /Nustatyti P1.0 P1.1 P1.2 P1.3 kaip išėjimus

led1 = 1; //iniciacija, visos 4 LED lemputės išjungtos
led2 = 1; //inicializuoti, visi 4 šviesos diodai išjungti
led3 = 1; led4 = 1; //inicializuoti, visi 4 led žibintai išjungti
led2 = 1; led3 = 1; led4 = 1; //inicializuoti, visos 4 LED lemputės išjungtos

while(1) //pradėti ciklą
{
led1 = 0; //led1 mirksi
Delay (10 ); //Delay (10); //Delay (10); //Delay(10 ); //Delay (10 )
delay(10); led1 = 1; //led1 mirksi
Delay (10).

led2 = 0; //led2 mirksi
Delay (10 ); led2 = 1; //led2 mirksi
led2 = 1; //led2 mirksi
Delay (10).

led3 = 0; //led3 mirksi
Delay (10 ); led3 = 1; //led3 mirksi
led3 = 1; //led3 mirksi
Delay (10).

led4 = 0; //led4 mirksi
Delay (10 ); led4 = 1; //led4 mirksi
led4 = 1; //led4 mirksi
Delay (10); //Delay (10 ); //Delay (10)
}
}

Gerai, šio nedidelio eksperimento kodas yra parašytas, nėra labai paprastas ach, hehe~!

Ketvirta, kompiliavimas ir derinimas

Pasirinkite Project -> Make, kompiliuokite kodą, jei pavyks, pasirodys tokia išvestis:

2011021320413789.jpg
c

Prijunkite "Zigbee" įrenginį tokia tvarka: " Zigbee" kūrimo plokštė → derintuvas → kompiuterio USB prievadas , tada pasirinkite Project -> Debug, programa bus automatiškai atsisiųsta į kūrimo plokštę.

Tada pasirinkite Debug -> Go, kad paleistumėte programą, ir pamatysite, kaip paeiliui mirksi 4 šviesos diodai! Nors tai yra paprastas negali būti daugiau paprastų mažų eksperimentų, bet kai man pavyko jį pasiekti, arba mažas susijaudinęs ~ huh!

V. Išvada

Šiame straipsnyje "LED šviesos diodų mirksėjimo eksperimentas" kaip pagrindas, atitinkamai, nuo IAR konfigūracijos, programos kodo parengimo, taip pat kompiliavimo ir derinimo proceso pristato visą įgyvendinimo procesą. Kitame, tai bus supratimas apie pagrindinį kūrimo procedūrų procesą, pagrįstą kelių CC2430 kūrimo pagrindinių eksperimentų, susijusių su laikmačiais, nuosekliuoju ryšiu, AD konvertavimu, sistemos miego ir sarginio šuns, ir t. t., todėl likite su mumis!






Ankstesnis: [Nuoroda] Zigbee kelionė (I): pasaulio pradžia
Kitas: [Referatas]Zigbee kelionė (III): Keletas svarbių CC2430 pagrindinių eksperimentų - išoriniai pertraukimai
Kodas ūkininko tinklas, skelbiamas tik praktikos metu, susidūrus su techniniais sunkumais, neklaidinkite kitų.

Ši vientisųjų taisyklių versija


ATSISAKYMAS: Visa Code Farmer paskelbta programinė įranga, programavimo medžiaga ar straipsniai gali būti naudojami tik mokymosi ir mokslinių tyrimų tikslais; minėtas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju visos pasekmės teks patiems naudotojams. Šios svetainės informacija iš tinklo, ginčas dėl autorių teisių neturi nieko bendra su šia svetaine. Per 24 valandas nuo atsisiuntimo turite visiškai pašalinti pirmiau nurodytą turinį iš savo kompiuterio. Jei programa jums patinka, paremkite originalią programinę įrangą, įsigykite registraciją ir gaukite geresnes originalias paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu, kad juos išspręstume.

Paštas To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-17 14:48

Greitasis atsakymasAtgal į viršųAtgal į sąrašą