架构师_程序员_码农网

L Saņemt paroli
Reģistrēties

QQ登录

Tikai viens solis, lai sāktu

Meklēt
Skatīt:6245|Atbilde: 0
打印 上一主题 下一主题

Zigbee Journey (II): Pirmā CC2430 programma - LED mirgošanas eksperiments

[Kopēt saiti]
P 跳转到指定楼层
ēkas īpašniekam
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|Atgriezeniskāpārlūkošana|Lasīšanas režīms
I. Turpinām iesākto

Iepriekšējā rakstā "Zigbee ceļojums (I): Sākums" mēs īsi iepazīstinājām ar Zigbee un tās izstrādes vidi, Labi, tagad, kad rīki ir pabeigti, rodas jautājums: kā izmantot programmatūru un aparatūru, lai uzrakstītu izpildāmu programmu?

Šis raksts būtībā ir atbilde uz iepriekš minēto jautājumu: uz "LED gaismas mirgošanu" kā neliela eksperimenta piemēru, kā konfigurēt IAR uz CC2430 balstītu programmu izstrādei, kā izmantot IAR, lai rakstītu un atkļūdotu programmu tiešsaistē.

IAR konfigurācija

IAR ir jaudīga iegulto programmu izstrādes platforma, kas atbalsta daudzu veidu mikroshēmas, un katram projektam IAR var būt sava konfigurācija, tostarp ierīces tips, kaudzes/paketes, sasaistes programma, atkļūdošanas programma utt.

(1) Jauna darbvieta un projekts

Vispirms izveidojiet jaunu mapi ledtest, atveriet IAR, izvēlieties galveno izvēlni File (Failu) -> New (Jauns) -> Workspace (Darba vieta), lai izveidotu jaunu darba vietu.

Izvēlieties Project (Projekts) -> Create New Project (Izveidot jaunu projektu) -> Empty Project (Tukšs projekts), noklikšķiniet uz OK un saglabājiet projekta failu mapē ledtest ar nosaukumu: ledtest.ewp (kā norādīts turpmāk).

(2) Konfigurējiet vispārīgās opcijas

Mērķa iestatījums: Ierīce: CC2430;

Koda režīms: Tuvu;

Datu modelis: Large;

Izsaukšanas konvencija: XDATA kaudze reetrant

Datu rādītāja iestatījums: DPTR skaits: 1

Stack/Heap iestatījums: XDATA kaudzes izmērs: 0x1FF

(3) Sasaistītāja iestatījumi

Linker komandu fails: select lnk51ew_cc2430.xcl

(4) Debugger iestatījumi:


Ierīce: Texas Instruments (šis eksperiments reālās mašīnas atkļūdošanai, tāpēc izvēlieties TI; ja citas procedūras, lai izmantotu IAR emulatoru, pēc izvēles Simulator) Ierīce Apraksts fails: CC2430.ddf

Šajā brīdī IAR konfigurācija šim eksperimentam būtībā ir pabeigta, turpmāk jāiepazīstina ar tās kodēšanas īstenošanu.

Treškārt, programmas koda sagatavošana(1) Jauns programmas fails

Izvēlieties File->New->File, izveidojiet jaunu failu main.c.

(2) Ieviest galvenes failus

Uz CC2430 balstītās programmās jāiekļauj atsauce uz ioCC2430.h, kurā definēta CC2430 dažādu veidu speciālo funkciju reģistru (SFR) adrešu kartēšana.

#include // Ievadiet CC2430 atbilstošo galvenes failu (satur katra SFR definīciju).

Šis fails ir iebūvēts IAR (līdzīgi kā stdio.h), ar peli pieskarieties šai koda rindai, noklikšķiniet ar peles labo pogu, atlasiet OPen "ioCC2430.h", jūs varat redzēt pilnu šī galvenes faila saturu.

(3) Definējiet LED kontaktus

Pārbaudiet izstrādes plates shēmas shēmu, kā parādīts turpmāk:

2011021320144913.jpg

Ir zināms, ka led1~4 tiek vadīti attiecīgi ar adatām P1_0~P4_0, tāpēc varam definēt led1, led2, led3, led4 attiecīgi kā adatas P1_0, P2_0, P3_0, P4_0.


#define led1 P1_0 //definē LED1 kā P1_0 porta vadību #define led2 P1_1

//define led2 kā P1_1 porta vadība #define led3 P1_2 //define led3 kā P1_2 porta vadība #define led4
P1_3 //define led4 P1_3 porta vadībai

(4) Galvenā funkcija

Tālāk sāciet rakstīt galveno funkciju.

Pirmkārt, pirms P1.0~P1.4 portu izmantošanas ir jāiestata to darba režīms un ievades/izvades virziens, kas ietver divus SFR: P1SEL, P1DIR.


P1SEL = 0x00; //Noteikt P1 kā parasto I/O portu P1DIR |= 0x0F; & nbsp; //Noteikt P1.0 P1.1 P1.2 P1.3 kā izejas

Zigbee padomi
CC2430 ir P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7, kopā 21 I/O ports. Tos var izmantot kā vispārējas nozīmes ciparu I/O vai perifēro IO, piemēram, ADC, taimera/skaitītāja vai USART, pieslēgšanai.
CC2430 SFR ir trīs veidu reģistri, kurus var izmantot, lai konfigurētu šos IO portus:
①PxSEL (x ir 0/1/2 ): P0/P1/P2 portu funkciju izvēle.
PxSEL (x ir 0/1/2): P0/P1/P2 portu funkciju izvēle. nbsp;0: vispārējas nozīmes digitālais IO, 1: perifērijas IO, noklusējuma noklusējums ir 0
PxDIR (x ir 0/1/2): P0/P1/P2 porta virziens
& nbsp;0: ieeja, 1: izeja, noklusējuma noklusējums ir 0
③PxINP (x ir 0/1): P0/P1 porta ieejas režīms
 0: augšup, 1: izeja, noklusējuma noklusējums 0 nbsp;0: pull-up/down, 1: trīsstāvu, noklusējuma noklusējums ir 0
Konfigurēšana ir nepieciešama, ja tiek izmantots IO ports, ja noklusējuma iestatījums, tad izmantojiet sistēmas noklusējuma iestatījumu.

Pēc tam inicializējiet 4 gaismas diodes, iestatiet, lai tās visas būtu izslēgtas:




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

Visbeidzot, ierakstiet LED mirgošanas efekta kodu:






Led1 = 0; //led1 mirgo Delay(10); led1 = 1; Delay(10); led2




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





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


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


Tas ietver kavēšanas apakšfunkciju 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; j++) ; }}

(5) Koda pārskats

Apvienojiet iepriekš minēto kodu kopumā, kā parādīts turpmāk:

// Ievadiet galvenes failus
#include //ievadiet CC2430 atbilstošo galvenes failu (ieskaitot katra SFR definīciju).

//definēt LED kontaktus
#define led1 P1_0 //define LED1 P1_0 porta vadībai
#define led2 P1_1 //definē LED2 kā P1_1 porta vadību.
#define led3 P1_2 //definē LED3 kā P1_2 porta vadību
#define led4 P1_3 //define LED4 P1_3 porta vadībai //define LED4 P1_3 porta vadībai //define LED4 P1_3 apakšprogramma
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; //Noteikt P1 kā parasto I/O portu
P1DIR |= 0x0F; //Noteikt P1.0 P1.1 P1.2 P1.3 kā izejas

led1 = 1; //iniicializēt, visas 4 LED lampiņas izslēgtas
led2 = 1; //inicializēt, visas 4 LED gaismas neizslēgtas
led3 = 1; led4 = 1; //iniicializēt, visas 4 LED gaismas izslēgtas
led2 = 1; led3 = 1; led4 = 1; //inicializēt, visas 4 LED gaismas izslēgtas

while(1) //sākt ciklu
{
led1 = 0; //led1 mirgo
Delay (10 ); //Delay (10); //Delay (10); //Delay (10 ); //Delay (10 )
delay(10); led1 = 1; //led1 mirgo
Delay (10).

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

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

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

Labi, kods šim nelielam eksperimentam ir rakstīts, nav ļoti vienkāršs ah, hehe~!

Ceturtkārt, kompilēšana un atkļūdošana

Izvēlieties Project -> Make, kompilējiet kodu, ja tas izdosies, parādīsies šāds izvads:

2011021320413789.jpg
c

Pievienojiet Zigbee ierīci secībā Zigbee izstrādes plate → atkļūdošanas programma → datora USB ports un pēc tam izvēlieties Project -> Debug, programma tiks automātiski lejupielādēta izstrādes platē.

Pēc tam izvēlieties Debug -> Go, lai palaistu programmu, un jūs redzēsiet, ka 4 LED mirgo secīgi! Lai gan tas ir vienkāršs nevar būt vairāk vienkāršs neliels eksperimenti, bet, kad man izdevās to panākt, vai mazs satraukti ~ huh!

V. Secinājumi

Šajā rakstā "LED gaismas mirgošanas eksperiments" kā pamats, attiecīgi, sākot no IAR konfigurācijas, programmas koda sagatavošanas, kā arī kompilēšanas un atkļūdošanas procesa, iepazīstina ar visu īstenošanas procesu. Nākamajā, tas būs izpratnē par attīstības procedūru pamatprocesu, pamatojoties uz vairāku CC2430 attīstības pamateksperimentu ieviešanu, kas ietver taimerus, sērijveida sakarus, AD pārveidošanu, sistēmas miega un sardzes suņa u .c., tāpēc sekojiet līdzi!






Iepriekšējais: [Atsauces] Zigbee ceļojums (I): pasaules sākums
Nākamo: [Referāts]Zigbee ceļojums (III): Daži svarīgi CC2430 pamata eksperimenti - ārējie pārtraukumi
Kods lauksaimnieku tīkls, publicēts tikai prakses procesā, saskārās ar tehniskām grūtībām, nemaldiniet citus.
Jums ir jāpiesakās, pirms varat rakstīt atpakaļ Log in | Reģistrēties

Šī integrēto noteikumu versija


PAZIŅOJUMS: Visas Code Farmer publicētās programmatūras, programmēšanas materiāli vai raksti ir izmantojami tikai mācību un pētniecības nolūkos; iepriekš minēto saturu nedrīkst izmantot komerciālos vai nelikumīgos nolūkos, pretējā gadījumā visas sekas sedz paši lietotāji. Šīs vietnes informācija no tīkla, strīdam par autortiesībām nav nekāda sakara ar šo vietni. Iepriekš minētais saturs pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un saņemiet labāku oriģinālu pakalpojumu. Ja ir kāds pārkāpums, lūdzu, sazinieties ar mums pa e-pastu, lai to risinātu.

E-pasts To:help@itsvse.com

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

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

Ātrā atbildeAtgriezties uz augšuAtgriezties pie saraksta