架构师_程序员_码农网

U Pridobitev gesla
Registracija

QQ登录

Samo en korak za začetek

Iskanje
Pogled:6245|Odgovor: 0
打印 上一主题 下一主题

Zigbee Journey (II): Prvi program CC2430 - eksperiment z utripanjem LED

[Kopiraj povezavo]
D 跳转到指定楼层
lastnika stavbe
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|Odvratnobrskanje|Način branja
I. Nadaljevanje tam, kjer smo končali

V prejšnjem članku "Potovanje Zigbee (I): Začetek" smo na kratko predstavili Zigbee in njegovo razvojno okolje, OK, zdaj, ko so orodja dokončana, se pojavi vprašanje: kako uporabiti programsko in strojno opremo za pisanje programa, ki ga je mogoče zagnati?

Ta članek je v bistvu odgovoriti na zgornje vprašanje: na "utripanje luči LED" kot primer majhnega poskusa, kako konfigurirati IAR za razvoj programov na osnovi CC2430, kako uporabiti IAR za pisanje in razhroščevanje programa na spletu.

Konfiguracija programa IAR

IAR je zmogljiva vgrajena razvojna platforma, ki podpira številne vrste čipov, vsak projekt v IAR pa ima lahko svojo konfiguracijo, vključno s tipom naprave, kupom/skladom, povezovalnikom, razhroščevalnikom itd.

(1) Nov delovni prostor in projekt

Najprej ustvarite novo mapo ledtest, odprite program IAR, izberite glavni meni Datoteka -> Novo -> Delovni prostor, da ustvarite nov delovni prostor.

Izberite Project -> Create New Project -> Empty Project, kliknite OK in shranite projektno datoteko v mapo ledtest z imenom: ledtest.ewp (kot spodaj).

(2) Konfigurirajte splošne možnosti

Ciljna nastavitev: Naprava: CC2430;

Način kodiranja: blizu;

Podatkovni model: Velik;

Konvencija za klicanje: XDATA stack reetrant

Nastavitev podatkovnega kazalca: Število DPTR: 1

Nastavitev sklada/sklopa: velikost sklada XDATA: 0x1FF

(3) Nastavitve povezovalnika

Datoteka z ukazom povezovalnika: select lnk51ew_cc2430.xcl

(4) Nastavitve programa za odpravljanje napak:


(ta eksperiment za pravo strojno razhroščevanje, zato izberite TI; če so drugi postopki za uporabo emulatorja IAR, neobvezno Simulator) Naprava Opisna datoteka: CC2430.ddf

Na tej točki je konfiguracija IAR za ta poskus v bistvu končana, v nadaljevanju pa predstavimo njeno kodno izvajanje.

Tretjič, priprava programske kode(1) Nova programska datoteka

Izberite File->New->File in ustvarite novo datoteko main.c.

(2) Uvedite datoteke glave

Programi, ki temeljijo na CC2430, morajo vsebovati sklic na datoteko ioCC2430.h, ki opredeljuje mapiranje naslovov različnih vrst posebnih funkcijskih registrov (SFR) CC2430.

#include //Uvedite naglavno datoteko, ki ustreza CC2430 (vsebuje definicijo vsakega SFR)

Ta datoteka je vgrajena v IAR (podobno kot stdio.h), z miško se približajte tej vrstici kode, kliknite z desno tipko miške, izberite OPen "ioCC2430.h", vidite lahko celotno vsebino te datoteke glave.

(3) Opredelite nožice LED

Preverite shemo vezja razvojne plošče, kot je prikazano spodaj:

2011021320144913.jpg

Znano je, da led1~4 nadzorujejo nožice P1_0~P4_0, zato lahko led1, led2, led3, led4 definiramo kot nožice P1_0, P2_0, P3_0, P4_0.


#define led1 P1_0 //opredeli LED1 kot krmilnik vrat P1_0 #define led2 P1_1

//definirajte led2 kot P1_1 nadzor vrat #define led3 P1_2 //definirajte led3 kot P1_2 nadzor vrat #define led4
P1_3 //definiraj led4 za nadzor vrat P1_3

(4) Glavna funkcija

Nato začnite pisati glavno funkcijo.

Najprej morate pred uporabo vrat P1.0~P1.4 nastaviti njihov način delovanja in smer vhoda/izhoda, kar vključuje dva SFR: P1SEL, P1DIR.


P1SEL = 0x00; //Nastavite P1 kot običajna vhodno-izhodna vrata P1DIR |= 0x0F; & nbsp; //Nastavi P1.0 P1.1 P1.2 P1.3 kot izhode

Nasveti za Zigbee
CC2430 ima P0_0 ~ P0_7, P1_0 ~ P1_7, P2_0 ~ P2_7 skupaj 21 vhodno-izhodnih vrat. Uporabljajo se lahko kot splošni digitalni I/O ali za priključitev perifernih IO, kot so ADC, časovnik/števec ali USART.
V SFR CC2430 so trije tipi registrov, ki se lahko uporabljajo za konfiguracijo teh vhodnih vhodov:
①PxSEL (x je 0/1/2 ): izbira funkcije vrat P0/P1/P2
PxSEL (x je 0/1/2): izbira funkcije vrat P0/P1/P2 nbsp;0: splošni digitalni IO, 1: periferni IO, privzeto je 0
PxDIR (x je 0/1/2): smer vrat P0/P1/P2
& nbsp;0: vhod, 1: izhod, privzeto je 0
③PxINP (x je 0/1): vhodni način vrat P0/P1
 0: navzgor, 1: izhod, privzeto je privzeto 0 nbsp;0: pull-up/down, 1: tristanje, privzeto privzeto je 0
Konfiguracija je potrebna pri uporabi vhodnih vhodnih vrat, če so privzeta, potem vzemite sistemsko privzeto nastavitev.

Nato inicializirajte 4 LED diode, nastavite jih na vse izklopljene:




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

Na koncu napišite kodo za učinek utripanja LED:






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




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





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


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


To vključuje podfunkcijo zamude 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) Pregled kode

Zgornjo kodo združite v celoto, kot je prikazano spodaj:

//Uvedite datoteke glave
#include //uvedite datoteke glave, ki ustrezajo CC2430 (vključno z definicijo vsakega SFR)

// Opredelite nožice LED
#define led1 P1_0 //define LED1 za nadzor vrat P1_0
#define led2 P1_1 //define LED2 za nadzor vrat P1_1
#define led3 P1_2 //define LED3 kot krmilnik vrat P1_2
#define led4 P1_3 //define LED4 za krmiljenje vrat P1_3 //podprogram za zakasnitev
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; //Nastavite P1 kot običajna vhodno-izhodna vrata
P1DIR |= 0x0F; /Nastavi P1.0 P1.1 P1.2 P1.3 kot izhode

led1 = 1; //inicializacija, vse 4 led luči so ugasnjene
led2 = 1; //inicializacija, vse 4 led luči so ugasnjene
led3 = 1; led4 = 1; //inicializacija, vse 4 led luči so ugasnjene
led2 = 1; led3 = 1; led4 = 1; //inicializacija, vse 4 led luči ugasnjene

while(1) //začetek cikla
{
led1 = 0; //led1 utripa
Zakasnitev (10); //Zakasnitev (10); //Zakasnitev (10 ); //Zakasnitev (10)
delay(10); led1 = 1; //led1 utripa
Zakasnitev (10).

led2 = 0; //led2 utripa
Zakasnitev (10); led2 = 1; //led2 utripa
led2 = 1; //led2 utripa
Zakasnitev (10).

led3 = 0; //led3 utripa
Zakasnitev (10); led3 = 1; //led3 utripa
led3 = 1; //led3 utripa
Zakasnitev (10).

led4 = 0; //led4 utripa
Zakasnitev (10); led4 = 1; //led4 utripa
led4 = 1; //led4 utripa
Delay (10); //Delay (10 )
}
}

V redu, koda za ta majhen poskus je napisana, ni zelo preprosta ah, hehe~!

Četrtič, sestavljanje in razhroščevanje

Izberite Project -> Make, sestavite kodo, če je uspešna, se prikaže naslednji izpis:

2011021320413789.jpg
c

Priključite napravo Zigbee v vrstnem redu razvojna plošča Zigbee → Debugger → vrata USB računalnika in nato izberite Project -> Debug, program se bo samodejno prenesel v razvojno ploščo.

Nato izberite Debug -> Go, da zaženete program, in videli boste, da 4 LED diode zaporedno utripajo! Čeprav je to preprost ne more biti bolj preprost mali poskusi, ampak ko mi je uspelo doseči, ali majhen navdušen ~ huh!

V. Zaključek

V tem članku je "eksperiment z utripanjem luči LED" kot osnova oziroma od konfiguracije IAR, priprave programske kode ter postopka sestavljanja in razhroščevanja predstavi celoten postopek izvajanja. Naslednji, to bo v razumevanju osnovnega procesa razvojnih postopkov, ki temelji na uvedbi več CC2430 razvoj osnovnih poskusov, ki vključujejo časovnike, serijske komunikacije, AD pretvorbo, spanje sistema in watchdog , itd, zato ostanite z nami!






Prejšnja: [Navedeno] Potovanje Zigbee (I): začetek sveta
Naslednji: [Poročilo]Zigbee potovanje (III): Nekaj pomembnih osnovnih poskusov CC2430 - zunanje prekinitve
Koda kmetovega omrežja, objavljena le v procesu prakse, naleteli na tehnične težave, ne zavajajte drugih.
Preden lahko objavite nazaj, se morate prijaviti Prijava | Registracija

T a različica integralnih pravil


IZJAVA: Vsa programska oprema, programsko gradivo ali članki, ki jih je objavil Code Farmer, so omejeni samo na uporabo v učne in raziskovalne namene; zgoraj navedene vsebine se ne smejo uporabljati v komercialne ali nezakonite namene, sicer vse posledice nosijo uporabniki sami. To spletno mesto informacije iz omrežja, avtorske pravice spor nima nobene zveze s tem spletnim mestom. Zgornjo vsebino morate v celoti odstraniti iz računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljšo pristno storitev. Če pride do kakršne koli kršitve, se obrnite na nas po elektronski pošti, da jo obravnavamo.

Pošta To:help@itsvse.com

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

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

Hitri odgovoriNazaj na vrhNazaj na seznam