| 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:
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++)  
; 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:
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! |