| I. Jätkame sealt, kus me pooleli jätsime Eelmises artiklis "Zigbee Journey (I): The Beginning " tutvustasime lühidalt Zigbee'i ja selle arenduskeskkonda, OK, nüüd, kui tööriistad on valmis, tekib küsimus: kuidas kasutada tarkvara ja riistvara, et kirjutada käivitatav programm? See artikkel on põhimõtteliselt vastata eespool esitatud küsimusele: "LED-valguse vilkumine" kui näide väikesest eksperimendist, kuidas konfigureerida IAR CC2430-põhiste programmide arendamiseks, kuidas kasutada IAR-i programmi kirjutamiseks ja veebipõhiseks silumiseks. IARi konfigureerimine IAR on võimas varjatud arendusplatvorm, mis toetab paljusid erinevaid kiipe ja igal IAR-i projektil võib olla oma konfiguratsioon, sealhulgas seadme tüüp, Heap/Stack, Linker, Debugger jne. (1) Uus tööruum ja projekt Kõigepealt looge uus kaust ledtest, avage IAR, valige uue tööruumi loomiseks peamenüü File -> New -> Workspace. Valige Project -> Create New Project -> Empty Project, klõpsake OK ja salvestage projektifail kausta ledtest, mille nimi on: ledtest.ewp (nagu allpool). (2) Konfigureerige üldised valikud Eesmärgi seadistus: Seade: CC2430; Koodirežiim: Near; Andmemudel: Large; Kutsekonventsioon: XDATA virna reetrant
Andmemärkide seadistus: DPTRide arv: 1
Stack/Heap seade: XDATA stack size: 0x1FF (3) Linkeri seaded Linkeri käsufail: select lnk51ew_cc2430.xcl
(4) Debuggeri seaded: Driver: Texas Instruments (see eksperiment reaalse masina silumiseks, nii et valida TI; kui muud menetlused kasutada IAR emulaator, vabatahtlik Simulaator) Seade Kirjeldusfail: CC2430.ddf
Siinkohal on IARi konfiguratsioon selle katse jaoks põhimõtteliselt läbi, järgnevalt tutvustada selle kodeerimise rakendamist. Kolmandaks, programmikoodi ettevalmistamine(1) Uus programmifail Valige File->New->File, looge uus fail main.c. (2) Võtke kasutusele päisefailid CC2430-põhised programmid peavad sisaldama viidet failile ioCC2430.h, mis määratleb CC2430 eri tüüpi erifunktsiooniregistrite (SFR) aadressi kaardistamise. #include //Esita CC2430-le vastav päisefail (sisaldab iga SFR-i definitsiooni). See fail on IAR-i sisse ehitatud (sarnaselt stdio.h-le), hiirega sellele koodireale, paremklõps, valige OPen "ioCC2430.h", siis näete selle päisefaili täielikku sisu. (3) Määrake LED-pinid Kontrollige arendusplaadi elektriskeemi, nagu on näidatud allpool:
On teada, et led1~4 juhitakse vastavalt viikudega P1_0~P4_0, seega võime määratleda led1, led2, led3, led4 vastavalt viikudega P1_0, P2_0, P3_0, P4_0. #define led1 P1_0 //define LED1 kui P1_0 pordi juhtimine #define led2 P1_1
//define led2 kui P1_1 portjuhtimine #define led3 P1_2 //define led3 kui P1_2 portjuhtimine #define led4 P1_3 //define led4 kui P1_3 pordi juhtimine (4) Põhifunktsioon Järgmisena alustame põhifunktsiooni kirjutamist. Kõigepealt tuleb enne P1.0~P1.4 portide kasutamist seadistada selle töörežiim ja sisendi/väljundi suund, mis hõlmab kahte SFR-i: P1SEL, P1DIR. P1SEL = 0x00; //Seadistatakse P1 tavalise I/O-portina P1DIR |= 0x0F; & nbsp; //Määrata P1.0 P1.1 P1.2 P1.3 väljunditeks. Zigbee nõuanded CC2430 on P0_0 ~ P0_7, P1_0 ~ P1_7, P2_0 ~ P2_7 kokku 21 I/O porti. Neid saab kasutada üldotstarbeliste digitaalsete I/O-dena või perifeersete IO-de, nagu ADC, taimer/loendur või USART, ühendamiseks. CC2430 SFR-is on kolme tüüpi registrid, mida saab kasutada nende IO-portide konfigureerimiseks: ①PxSEL (x on 0/1/2): P0/P1/P2 pordi funktsiooni valik. PxSEL (x on 0/1/2): P0/P1/P2 pordi funktsiooni valik. nbsp;0: üldotstarbeline digitaalne IO, 1: perifeerne IO, vaikimisi on 0 ② PxDIR (x on 0/1/2): P0/P1/P2 pordi suund. & nbsp;0: sisend, 1: väljund, vaikimisi on 0 ③PxINP (x on 0/1): P0/P1 pordi sisendrežiim. 0: üles, 1: väljund, vaikimisi vaikimisi 0 nbsp;0: pull-up/down, 1: tri-state, vaikimisi vaikimisi 0 IO-pordi kasutamisel on vaja konfigureerimist, kui vaikimisi, siis võta süsteemi vaikimisi. Seejärel initsialiseerige 4 LED-i, seadke need kõik välja:
led1 = 1; led2 = 1; led3 = 1; led4 = 1. Lõpuks kirjutage LED-i vilkumise efekti kood:
led1 = 0; //led1 vilgub Delay(10); led1 = 1; Delay(10); led2
= 0; //led2 vilgub Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 vilgub Delay(10); /
//led3 vilgub Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 vilgub &
nbsp; Delay(10); led4 = 1; Delay(10);
See hõlmab viivituse alamfunktsiooni 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++) ; } (5) Koodide ülevaade Kombineerige ülaltoodud kood tervikuna nagu allpool näidatud: //Esita päisefailid #include //Esita CC2430-le vastav päisefail (sealhulgas iga SFR-i definitsioon).
// Defineerige LED-pinid #define led1 P1_0 //defineeri LED1 P1_0 pordi juhtimiseks #define led2 P1_1 //defineeri LED2 kui P1_1 pordi juhtimiseks #define led3 P1_2 //define LED3 kui P1_2 pordi juhtimine #define led4 P1_3 //define LED4 P1_3 pordi juhtimiseks //delay subroutiiniga void Delay (unsigned char n) { { unsigned char i. unsigned int j. for (i = 0; i < n; i++) for (j = 1; j; j++) ; }
void main (void ) { P1SEL = 0x00; //Set P1 tavaline I/O port. P1DIR |= 0x0F; //Set P1.0 P1.1 P1.2 P1.3 väljunditeks. led1 = 1; //initsialiseerimine, kõik 4 led-tuled välja lülitatud led2 = 1; //initsialiseeri, kõik 4 ledi väljalülitatud led3 = 1; led4 = 1; //initsialiseerida, kõik 4 ledi välja lülitatud led2 = 1; led3 = 1; led4 = 1; //initsialiseerida, kõik 4 ledi tuled välja lülitatud while(1 ) //alusta tsükkel { led1 = 0; //led1 vilgub Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 ) delay(10); led1 = 1; //led1 vilgub Delay (10 ). led2 = 0; //led2 vilgub Delay (10 ); led2 = 1; //led2 vilgub led2 = 1; //led2 vilgub Delay (10 ). led3 = 0; //led3 vilgub Delay (10 ); led3 = 1; //led3 vilgub led3 = 1; //led3 vilgub Delay (10 ). led4 = 0; //led4 vilgub Delay (10 ); led4 = 1; //led4 vilgub led4 = 1; //led4 vilgub Delay (10 ); //Delay (10 ) } }
OK, selle väikese eksperimendi kood on kirjutatud, ei ole väga lihtne ah, hehe~! Neljandaks, kompileerimine ja silumine Valige Project -> Make, kompileerige kood, kui see õnnestub, ilmub järgmine väljund:
c
Ühendage Zigbee seade järjekorras Zigbee arendusplaat → Debugger → PC USB port ja seejärel valige Project -> Debug, programm laetakse arendusplaadile automaatselt alla. Seejärel valige programmi käivitamiseks Debug -> Go ja näete, et 4 LED-i vilguvad järjestikku! Kuigi see on lihtne ei saa olla rohkem lihtne väike eksperimendid, kuid kui mul õnnestus saavutada see, või väike põnevil ~ huh! V. Kokkuvõte Selles dokumendis on "LED-valguse vilkumise eksperiment" aluseks vastavalt IAR-i konfiguratsioonist, programmi koodi ettevalmistamisest, samuti kompileerimis- ja silumisprotsessist, mis tutvustab kogu rakendusprotsessi. Järgmine, see on arusaam põhiprotsessi arengu menetlused põhineb tutvustamise mitu CC2430 arengu põhilised eksperimendid, mis hõlmavad taimerid, jadakommunikatsiooni, AD muundamise, süsteemi une ja watchdog , jne, nii et jääge häälestatud! |