架构师_程序员_码农网

B Hent adgangskode
Tilmeld dig

QQ登录

Kun ét skridt for at komme i gang

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

Zigbee-rejse (II): Det første CC2430-program - LED-blinkende eksperiment

[Kopier link]
L 跳转到指定楼层
ejeren af bygningen
2014-10-30 23:15:39|只看该作者回帖奖励|ReverseBrowse|Læsetilstand
I. Vi fortsætter, hvor vi slap

I den forrige artikel , "Zigbee Journey (I): The Beginning", introducerede vi kort Zigbee og dets udviklingsmiljø, OK, nu hvor værktøjerne er komplette, opstår der et spørgsmål: Hvordan bruger man softwaren og hardwaren til at skrive et program, der kan køre?

Denne artikel skal grundlæggende besvare ovenstående spørgsmål: at "LED light blinking" som et eksempel på et lille eksperiment, hvordan man konfigurerer IAR til udvikling af CC2430-baserede programmer, hvordan man bruger IAR til at skrive og debugge programmet online.

Konfiguration af IAR

IAR er en kraftfuld indlejret udviklingsplatform, der understøtter mange slags chips, og hvert projekt i IAR kan have sin egen konfiguration, herunder Device type, Heap/Stack, Linker, Debugger osv.

(1) Nyt arbejdsområde og projekt

Først og fremmest skal du oprette en ny mappe ledtest, åbne IAR, vælge hovedmenuen File -> New -> Workspace for at oprette et nyt arbejdsområde.

Vælg Project -> Create New Project -> Empty Project, klik på OK, og gem projektfilen i mappen ledtest med navnet: ledtest.ewp (som nedenfor).

(2) Konfigurer generelle indstillinger

Målindstilling: Enhed: CC2430;

Kodetilstand: Nær;

Datamodel: Stor;

Opkaldskonvention: XDATA-stak reetrant

Indstilling af datapointer: Antal DPTR'er: 1

Stack/Heap-indstilling: XDATA-stackstørrelse: 0x1FF

(3) Linker-indstillinger

Linker-kommandofil: select lnk51ew_cc2430.xcl

(4) Indstillinger for debuggeren:


Driver: Texas Instruments (dette eksperiment for den rigtige maskindebugging, så vælg TI; hvis andre procedurer for at bruge IAR-emulatoren, valgfri Simulator) Device Beskrivelsesfil: CC2430.ddf

På dette tidspunkt er IAR-konfigurationen til dette eksperiment stort set overstået, og i det følgende introduceres kodningsimplementeringen.

For det tredje forberedelse af programkoden(1) Ny programfil

Vælg File->New->File, opret en ny fil main.c.

(2) Indfør header-filer

CC2430-baserede programmer skal indeholde en henvisning til ioCC2430.h, som definerer adressemapping af de forskellige typer specialfunktionsregistre (SFR'er) på CC2430.

#include //Introducer headerfilen, der svarer til CC2430 (indeholder definitionen af hvert SFR)

Denne fil er indbygget i IAR (svarende til stdio.h), musen til denne kodelinje, højreklik, vælg OPen "ioCC2430.h", du kan se det fulde indhold af denne headerfil .

(3) Definer LED-stifterne

Tjek kredsløbsdiagrammet for udviklingskortet, som vist nedenfor:

Det er kendt, at led1~4 styres af pins P1_0~P4_0 henholdsvis, så vi kan definere led1, led2, led3, led4 som pins P1_0, P2_0, P3_0, P4_0 henholdsvis.


#define led1 P1_0 //define LED1 som P1_0-portstyring #define led2 P1_1

//define led2 as P1_1 port control #define led3 P1_2 //define led3 as P1_2 port control #define led4
P1_3 //definer led4 til P1_3-portstyring

(4) Hovedfunktion

Nu skal du i gang med at skrive hovedfunktionen.

Først og fremmest skal du, før du bruger P1.0~P1.4-portene, konfigurere deres arbejdstilstand og input/output-retning, hvilket involverer to SFR'er: P1SEL, P1DIR.


P1SEL = 0x00; //Sæt P1 som en almindelig I/O-port P1DIR |= 0x0F; & nbsp; //Sæt P1.0 P1.1 P1.2 P1.3 som udgange

Zigbee-tips
CC2430 har P0_0 ~ P0_7, P1_0~P1_7 , P2_0~P2_7 i alt 21 I/O-porte . De kan bruges som generelle digitale I/O'er eller til tilslutning af perifere IO'er som ADC, timer/tæller eller USART.
Der er tre typer registre i CC2430's SFR, som kan bruges til at konfigurere disse IO-porte:
①PxSEL (x er 0/1/2): Valg af P0/P1/P2-portens funktion
PxSEL (x er 0/1/2): Valg af P0/P1/P2-portens funktion nbsp;0: generel digital IO, 1: perifer IO, standard er 0
PxDIR (x er 0/1/2): P0/P1/P2-portens retning
& nbsp;0: input, 1: output, standard standard er 0
③PxINP (x er 0/1): P0/P1-portindgangstilstand
0: op, 1: udgang, standard er 0 nbsp;0: pull-up/down, 1: tri-state, standard er 0
Konfiguration er påkrævet, når du bruger IO-porten, hvis standard, så tag systemets standard.

Initialiser derefter de 4 LED'er, sæt dem til alle ud:




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

Skriv til sidst koden til 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 involverer en forsinkelsesunderfunktion 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) Oversigt over koden

Kombiner ovenstående kode som en helhed som vist nedenfor:

//Introducer header-filer
#include //introducer headerfilen, der svarer til CC2430 (inklusive definitionen af hver SFR)

// Definer LED-pindene
#define led1 P1_0 //definer LED1 til styring af P1_0-porten
#define led2 P1_1 //definer LED2 som P1_1-portkontrol
#define led3 P1_2 //definer LED3 som P1_2-portkontrol
#define led4 P1_3 //define LED4 for P1_3 port control //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; //Sæt P1 som normal I/O-port
P1DIR |= 0x0F; //Sæt P1.0 P1.1 P1.2 P1.3 som udgange

led1 = 1; //initialiser, alle 4 led-lys slukket
led2 = 1; //initialiser, alle 4 led'er slukket
led3 = 1; led4 = 1; //initialiser, alle 4 led's slukket
led2 = 1; led3 = 1; led4 = 1; //initialise, all 4 led lights off

while(1 ) //start cyklus
{
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 til dette lille eksperiment er skrevet, er ikke særlig enkel ah, hehe~!

For det fjerde, kompilere og fejlsøge

Vælg Project -> Make, kompilér koden, og hvis det lykkes, vises følgende output:

2011021320413789.jpg
c

Tilslut Zigbee-enheden i rækkefølgen Zigbee-udviklingskort → Debugger → PC'ens USB-port, og vælg derefter Project -> Debug, så bliver programmet automatisk downloadet til udviklingskortet.

Vælg derefter Debug -> Go for at starte programmet, og du vil se de 4 LED'er blinke i rækkefølge! Selv om dette er et simpelt kan ikke være mere simpelt lille eksperiment, men da det lykkedes mig at opnå det, eller en lille begejstret ~ huh!

V. Konklusion

I denne artikel introducerer "LED-lysblink-eksperimentet" som grundlag henholdsvis fra konfigurationen af IAR, forberedelsen af programkoden samt kompilerings- og fejlsøgningsprocessen hele implementeringsprocessen. Den næste vil handle om forståelsen af de grundlæggende udviklingsprocedurer baseret på introduktionen af flere CC2430-udviklinger af grundlæggende eksperimenter, der involverer timere, seriel kommunikation, AD-konvertering, systemdvale og watchdog , etc., så hold øje!






Forrige: [Refereret] Zigbee-rejse (I): verdens begyndelse
Næste: [Rapport] Zigbee-rejse (III): Et par vigtige CC2430-grundeksperimenter - eksterne afbrydelser
Koden farmer netværk, kun offentliggjort i færd med praksis, stødt på tekniske vanskeligheder, ikke vildlede andre.
Du skal logge ind, før du kan skrive igen Log ind | Registrer dig

D enne version af de integrerede regler


DISCLAIMER: Al software, programmeringsmateriale eller artikler udgivet af Code Farmer er begrænset til kun at blive brugt til lærings- og forskningsformål; ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal alle konsekvenser bæres af brugerne selv. Denne webstedsinformation fra netværket, copyright-tvist har intet at gøre med dette websted. Du skal fjerne ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, bedes du støtte den ægte software, købe registreringen og få bedre ægte service. Hvis der sker en krænkelse, bedes du kontakte os via e-mail for at håndtere det.

Mail To:help@itsvse.com

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

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

Hurtigt svarTilbage til toppenTilbage til listen