架构师_程序员_码农网

B Hent passord
Registrer deg

QQ登录

Bare ett steg for å komme i gang

Søk i
架构师_程序员_码农网 "架构' 管理专区&Management Area ' Klager og forslag ' 回收站 ' 【转】Zigbee之旅(二):第一个CC2430程序-- . LED-lampene blinker ...
Vis:6245|Svar: 0
打印 上一主题 下一主题

Zigbee Journey (II): Det første CC2430-programmet - LED-blinkende eksperiment

[Kopier lenke]
L 跳转到指定楼层
eieren av bygningen
2014-10-30 23:15:39 | 2014-10-30 23:15:39|只看该作者回帖奖励|ReverseBrowse|Lesemodus
I. Vi fortsetter der vi slapp

I den forrige artikkelen , "Zigbee Journey (I): The Beginning", introduserte vi kort Zigbee og utviklingsmiljøet, OK, nå som verktøyene er komplette, oppstår det et spørsmål: hvordan bruker man programvaren og maskinvaren til å skrive et program som kan kjøre?

Denne artikkelen er i utgangspunktet å svare på spørsmålet ovenfor: til "LED-lys blinker" som et eksempel på et lite eksperiment, hvordan du konfigurerer IAR for utvikling av CC2430-baserte programmer, hvordan du bruker IAR til å skrive og feilsøke programmet på nettet.

Konfigurasjon av IAR

IAR er en kraftig innebygd utviklingsplattform som støtter mange typer chips, og hvert prosjekt i IAR kan ha sin egen konfigurasjon, inkludert enhetstype, Heap/Stack, Linker, Debugger osv.

(1) Nytt arbeidsområde og prosjekt

Først av alt, opprett en ny mappe ledtest, åpne IAR, velg hovedmenyen Fil -> Ny -> Arbeidsområde for å opprette et nytt arbeidsområde.

Velg Prosjekt -> Opprett nytt prosjekt -> Tomt prosjekt, klikk OK, og lagre prosjektfilen i mappen ledtest, navngitt som: ledtest.ewp (som nedenfor).

(2) Konfigurer generelle alternativer

Målinnstilling: Enhet: CC2430;

Kodemodus: Nær;

Datamodell: Large;

Konvensjon for oppkalling: XDATA stack reetrant

Datapekerinnstilling: Antall DPTR-er: 1

Stack/Heap-innstilling: XDATA-stakkstørrelse: 0x1FF

(3) Linker-innstillinger

Linker-kommandofil: select lnk51ew_cc2430.xcl

(4) Innstillinger for feilsøking:


Driver: Texas Instruments (dette eksperimentet for den virkelige maskinen feilsøking, så velg TI; hvis andre prosedyrer for å bruke IAR emulator, valgfri Simulator) Device Beskrivelse fil: CC2430.ddf

På dette tidspunktet er IAR-konfigurasjonen for dette eksperimentet i utgangspunktet over, det følgende for å introdusere kodingsimplementeringen.

For det tredje, utarbeidelsen av programkoden(1) Ny programfil

Velg Fil-> Ny-> Fil, opprett en ny fil main.c.

(2) Innfør header-filer

CC2430-baserte programmer må inneholde en referanse til ioCC2430.h, som definerer adressetilordningen til de ulike typene spesialfunksjonsregistre (SFR) på CC2430.

#include //Innfør header-filen som svarer til CC2430 (inneholder definisjonen av hvert SFR)

Denne filen er innebygd i IAR (ligner på stdio.h), musen til denne kodelinjen, høyreklikk, velg OPen "ioCC2430.h", kan du se hele innholdet i denne headerfilen .

(3) Definer LED-pinnene

Sjekk kretsskjemaet til utviklingskortet, som vist nedenfor:

Det er kjent at led1 ~ 4 styres av pinnene P1_0 ~ P4_0 henholdsvis, så vi kan definere led1, led2, led3, led4 som pinner P1_0, P2_0, P3_0, P4_0 henholdsvis.


#define led1 P1_0 //define LED1 som P1_0 portkontroll #define led2 P1_1

//define led2 som P1_1 portkontroll #define led3 P1_2 //define led3 som P1_2 portkontroll #define led4
P1_3 //definer led4 for P1_3-portkontroll

(4) Hovedfunksjon

Deretter begynner du å skrive hovedfunksjonen.

Først og fremst må du konfigurere arbeidsmodus og inngangs-/utgangsretning før du bruker P1.0~P1.4-portene, noe som involverer to SFR-er: P1SEL, P1DIR.


P1SEL = 0x00; //Sett P1 som en vanlig I/U-port P1DIR |= 0x0F; & nbsp; //Sett P1 som en vanlig I/U-port nbsp; //Sett P1.0 P1.1 P1.2 P1.3 som utganger

Zigbee-tips
CC2430 har P0_0 ~ P0_7, P1_0 ~ P1_7 , P2_0 ~ P2_7 totalt 21 I / O-porter . De kan brukes som generelle digitale I/O-er eller for tilkobling av perifere IO-er som ADC, timer/teller eller USART.
Det finnes tre typer registre i SFR på CC2430 som kan brukes til å konfigurere disse IO-portene:
①PxSEL (x er 0/1/2): Valg av P0/P1/P2-portfunksjon
PxSEL (x er 0/1/2): Valg av P0/P1/P2-portens funksjon nbsp;0: generell digital IO, 1: perifer IO, standard er 0
PxDIR (x er 0/1/2): P0/P1/P2-portens retning
& nbsp;0: inngang, 1: utgang, standard standard er 0
③PxINP (x er 0/1): P0/P1-portinngangsmodus
0: opp, 1: utgang, standard standard 0 nbsp;0: pull-up/down, 1: tri-state, standard er 0
Konfigurasjon er nødvendig når du bruker IO-porten, hvis standard, så ta systemstandarden.

Initialiser deretter de 4 lysdiodene, sett dem til alle ut:




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

Til slutt skriver du koden for LED-blinkende effekt:






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




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





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


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


Dette innebærer en forsinkelsesunderfunksjon 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) Oversikt over koden

Kombiner koden ovenfor som en helhet som vist nedenfor:

//Introduksjon av header-filer
#include //introduser headerfilen som tilsvarer CC2430 (inkludert definisjonen av hver SFR)

// Definer LED-pinnene
#define led1 P1_0 //definer LED1 for P1_0-portkontroll
#define led2 P1_1 //definer LED2 som P1_1-portkontroll
#define led3 P1_2 //definer LED3 som P1_2-portkontroll
#define led4 P1_3 //define LED4 for P1_3-portkontroll //delay subroutine
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; //Sett P1 som normal I/O-port
P1DIR |= 0x0F; //Sett P1.0 P1.1 P1.2 P1.3 som utganger

led1 = 1; //initialiser, alle 4 led-lysene er av
led2 = 1; //initialiser, alle 4 led-lysene er av
led3 = 1; led4 = 1; //initialiser, alle 4 led-lysene av
led2 = 1; led3 = 1; led4 = 1; //initialiser, alle 4 led-lysene av

while(1 ) //start syklus
{
led1 = 0; //led1 blinker
Delay (10); //Delay (10 ); //Delay (10 ); //Delay (10 )
delay(10); led1 = 1; //led1 blinker
Delay (10).

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

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

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

OK, koden for dette lille eksperimentet er skrevet, er ikke veldig enkelt ah, hehe~!

Fjerde, kompilere og feilsøking

Velg Project -> Make, kompiler koden, hvis det lykkes, vises følgende utdata:

2011021320413789.jpg
c

Koble til Zigbee-enheten i rekkefølgen Zigbee-utviklingskort → Debugger → PC-ens USB-port, og velg deretter Prosjekt -> Debug, programmet lastes automatisk ned til utviklingskortet.

Velg deretter Debug -> Go for å starte programmet, og du vil se de 4 lysdiodene blinke i rekkefølge! Selv om dette er en enkel kan ikke være mer enkle små eksperimenter, men når jeg lyktes i å oppnå det, eller en liten spent ~ huh!

V. Konklusjon

I denne artikkelen, "LED lys blinkende eksperiment" som grunnlag, henholdsvis fra konfigurasjonen av IAR, utarbeidelse av programkoden, samt kompilering og feilsøkingsprosessen introduserer hele implementeringsprosessen. Den neste, vil det være i forståelsen av den grunnleggende prosessen med utviklingsprosedyrer basert på innføring av flere CC2430 utvikling av grunnleggende eksperimenter som involverer tidtakere, seriell kommunikasjon, AD konvertering, system søvn og vakthund , etc., så følg med!






Forrige: [Referert] Zigbee-reise (I): begynnelsen av verden
Neste: [Rapport] Zigbee Journey (III): Noen få viktige CC2430 grunnleggende eksperimenter - eksterne avbrudd
Koden farmer nettverk, bare publisert i prosessen med praksis, oppstått tekniske vanskeligheter, ikke villede andre.
Du må logge inn før du kan skrive tilbake Logg inn | Registrer deg

D enne versjonen av de integrerte regleneR


ANSVARSFRASKRIVELSE: All programvare, programmeringsmateriell eller artikler publisert av Code Farmer er begrenset til kun å brukes til lærings- og forskningsformål; innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal alle konsekvensene bæres av brukerne selv. Dette nettstedet informasjon fra nettverket, copyright tvist har ingenting å gjøre med dette nettstedet. Du må fjerne innholdet ovenfor helt fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt den ekte programvaren, kjøp registreringen og få bedre ekte service. Hvis det er noen overtredelse, vennligst kontakt oss via e-post for å håndtere det.

Mail To:help@itsvse.com

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

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

HurtigsvarTilbake til toppenTilbake til listen