架构师_程序员_码农网

K Parooli taastamine
Registreeri

QQ登录

Ainult üks samm, et alustada

Otsi
View:6245|Reply: 0
打印 上一主题 下一主题

Zigbee Journey (II): Esimene CC2430 programm - LED-i vilkumise eksperiment

[Kopeeri link]
L 跳转到指定楼层
hoone omanikule
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|ReverseBrowse|Read Mode
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++) &nbsp


; 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:

2011021320413789.jpg
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!






Eelmine: [Viidatud] Zigbee reis (I): maailma algus
Järgmine: [Aruanne] Zigbee reis (III): Mõned olulised CC2430 põhilised katsed - välised katkestused
Koodi taluniku võrk, ainult avaldatud praktika käigus, tekkinud tehnilised raskused, ärge eksitage teisi.
Sa pead sisse logima, enne kui saad tagasi postitada Logi sisse | Registreeru

S ee versioon integraalseid reegleid


KINNITUS: Kõik Code Farmeri avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja teadustööks; eespool nimetatud sisu ei tohi kasutada kaubanduslikel või ebaseaduslikel eesmärkidel, vastasel juhul kannavad kõik tagajärjed kasutajad ise. See sait teavet võrgu, autoriõiguse vaidlus ei ole midagi pistmist selle saidi. Te peate eespool nimetatud sisu täielikult eemaldama oma arvutist 24 tunni jooksul pärast allalaadimist. Kui teile meeldib programm, palun toetage ehtsat tarkvara, ostke registreerimine ja saada paremat ehtsat teenust. Kui esineb rikkumine, võtke meiega ühendust e-posti teel, et sellega tegeleda.

Mail To:help@itsvse.com

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

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

Kiire vastusTagasi ülesTagasi nimekirja