架构师_程序员_码农网

K Hae salasana
Rekisteröidy

QQ登录

Vain yksi askel alkuun

Etsi
Näytä:6245|Vastaus: 0
打印 上一主题 下一主题

Zigbee Journey (II): Ensimmäinen CC2430-ohjelma - LED-merkkien vilkkumiskokeilu

[Kopioi linkki]
N 跳转到指定楼层
rakennuksen omistajalle
发表于 2014-10-30 23:15:39|只看该作者回帖奖励|Käänteinenselaus|Lukutila
I. Jatketaan siitä, mihin jäimme

Edellisessä artikkelissa "Zigbee Journey (I): The Beginning" esittelimme lyhyesti Zigbeen ja sen kehitysympäristön, OK, nyt kun työkalut ovat valmiit, herää kysymys: miten käyttää ohjelmistoja ja laitteistoja kirjoittaaksemme ohjelman, joka voi toimia?

Tämä artikkeli on pohjimmiltaan vastata edellä esitettyyn kysymykseen: "LED-valon vilkkumiseen" esimerkkinä pienestä kokeesta, miten IAR konfiguroidaan CC2430-pohjaisten ohjelmien kehittämiseen, miten IAR: n käyttäminen ohjelman kirjoittamiseen ja debuggaamiseen verkossa.

IAR:n konfigurointi

IAR on tehokas sulautettu kehitysalusta, joka tukee monenlaisia siruja, ja jokaisella IAR-projektilla voi olla oma konfiguraationsa, mukaan lukien laitetyyppi, Heap/Stack, Linker, Debugger jne.

(1) Uusi työtila ja projekti

Luo ensin uusi kansio ledtest, avaa IAR, valitse päävalikko File -> New -> Workspace luodaksesi uuden työtilan.

Valitse Project -> Create New Project -> Empty Project, napsauta OK ja tallenna projektitiedosto kansioon ledtest, jonka nimi on: ledtest.ewp (kuten alla).

(2) Määritä yleiset asetukset

Kohdeasetus: Laite: CC2430;

Kooditila: Läh;

Tietomalli: Large;

Kutsutapa: XDATA-pino reetrant

Tieto osoittimen asetus: DPTR:ien lukumäärä: 1

Pinon/kapasiteetin asetus: XDATA-pinon koko: 0x1FF.

(3) Linkkerin asetukset

Linkkerin komentotiedosto: select lnk51ew_cc2430.xcl.

(4) Debuggerin asetukset:


Ajuri: Texas Instruments (tämä kokeilu todellisen koneen virheenkorjaus, joten valitse TI; jos muut menettelyt käyttää IAR emulaattori, valinnainen Simulaattori) Laite Kuvaustiedosto: CC2430.ddf

Tässä vaiheessa IAR-konfiguraatio tätä kokeilua varten on periaatteessa ohi, seuraavassa esitellään sen koodaustoteutus.

Kolmanneksi ohjelmakoodin valmistelu(1) Uusi ohjelmatiedosto

Valitse File->New->File, luo uusi tiedosto main.c.

(2) Ota käyttöön otsikkotiedostot

CC2430-pohjaisissa ohjelmissa on oltava viittaus tiedostoon ioCC2430.h, jossa määritellään CC2430:n erityyppisten erikoistoimintarekisterien (SFR) osoitekartoitus.

#include //Tuo CC2430:tä vastaava otsikkotiedosto (sisältää kunkin SFR:n määritelmän).

Tämä tiedosto on sisäänrakennettu IAR:iin (samanlainen kuin stdio.h), hiirellä tälle koodiriville, hiiren oikealla painikkeella, valitse OPen "ioCC2430.h", näet tämän otsikkotiedoston koko sisällön.

(3) Määritä LED-nastat

Tarkista kehityslevyn piirikaavio, kuten alla on esitetty:

Tiedetään, että led1 ~ 4 ohjataan vastaavasti nastoilla P1_0 ~ P4_0, joten voimme määritellä led1, led2, led3, led4 vastaavasti nastoiksi P1_0, P2_0, P3_0, P4_0.


#define led1 P1_0 //määritellään LED1 portin P1_0 ohjaukseksi #define led2 P1_1

//define led2 kuin P1_1 portin ohjaus #define led3 P1_2 //define led3 kuin P1_2 portin ohjaus #define led4
P1_3 //define led4 portin P1_3 ohjausta varten

(4) Päätoiminto

Aloita seuraavaksi pääfunktion kirjoittaminen.

Ensinnäkin ennen kuin käytät P1.0~P1.4 -portteja, sinun on määritettävä niiden toimintatila ja tulo-/lähtösuunta, mikä koskee kahta SFR:ää: P1SEL, P1DIR.


P1SEL = 0x00; / / Aseta P1 tavalliseksi I/O-portiksi P1DIR |= 0x0F; & nbsp; //Setää P1.0 P1.1 P1.2 P1.3 lähdöiksi.

Zigbee-vihjeitä
CC2430:ssä on P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7 yhteensä 21 I/O-porttia. Niitä voidaan käyttää yleiskäyttöisinä digitaalisina I/O-portteina tai oheislaitteiden, kuten ADC:n, ajastimen / laskurin tai USARTin, liittämiseen.
CC2430:n SFR:ssä on kolmenlaisia rekistereitä, joita voidaan käyttää näiden IO-porttien konfigurointiin:
①PxSEL (x on 0/1/2): P0/P1/P2-portin toiminnon valinta.
PxSEL (x on 0/1/2): P0/P1/P2-portin toimintojen valinta. nbsp;0: yleiskäyttöinen digitaalinen IO, 1: oheislaite IO, oletusarvo on 0.
PxDIR (x on 0/1/2): P0/P1/P2-portin suuntaus.
& nbsp;0: tulo, 1: lähtö, oletusarvo on 0
③PxINP (x on 0/1): P0/P1-portin syöttötila.
 0: ylös, 1: ulos, oletusarvo oletusarvo 0 nbsp;0: pull-up/down, 1: tri-state, oletus oletusarvo on 0.
Konfigurointi vaaditaan käytettäessä IO-porttia, jos oletusarvo, ota järjestelmän oletusarvo.

Alusta sitten 4 LEDiä, aseta ne kaikki pois päältä:




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

Kirjoita lopuksi LED:n vilkkuva efektikoodi:






led1 = 0; //led1 vilkkuu Delay(10); led1 = 1; Delay(10); led2.




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





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


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


Tähän liittyy viiveen alifunktio 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) Koodin yleiskatsaus

Yhdistä yllä oleva koodi kokonaisuudeksi alla esitetyllä tavalla:

//Ohjaustiedostojen käyttöönotto
#include //esitellään CC2430:tä vastaava otsikkotiedosto (mukaan lukien kunkin SFR:n määritelmä).

// Määrittele LED-nastat
#define led1 P1_0 //määritä LED1 portin P1_0 ohjausta varten.
#define led2 P1_1 //define LED2 portin P1_1 ohjausta varten.
#define led3 P1_2 //define LED3 P1_2-portin ohjaukseen.
#define led4 P1_3 //define LED4 portin P1_3 ohjausta varten //hidastuksen aliohjelma
void Delay (unsigned char n) { 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; / / Aseta P1 normaaliksi I/O-portiksi.
P1DIR |= 0x0F; //Setää P1.0 P1.1 P1.2 P1.3 lähdöiksi.

led1 = 1; //initialisointi, kaikki 4 led-valoa pois päältä.
led2 = 1; //initialisoi, kaikki 4 lediä pois päältä.
led3 = 1; led4 = 1; //alusta, kaikki 4 lediä pois päältä.
led2 = 1; led3 = 1; led4 = 1; //initialisoi, kaikki 4 led-valoa pois päältä.

while(1 ) //käynnistä sykli
{
led1 = 0; //led1 vilkkuu.
Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 )
delay(10); led1 = 1; //led1 vilkkuu
Delay (10 ).

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

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

led4 = 0; //led4 vilkkuu.
Delay (10 ); led4 = 1; //led4 vilkkuu.
led4 = 1; //led4 vilkkuu.
Delay (10 ); //Delay (10 ))
}
}

OK, tämän pienen kokeen koodi on kirjoitettu, ei ole kovin yksinkertainen ah, hehe~!

Neljänneksi, kääntäminen ja virheenkorjaus

Valitse Project -> Make, käännä koodi, jos se onnistuu, seuraava tuloste tulee näkyviin:

2011021320413789.jpg
c

Kytke Zigbee-laite järjestyksessä Zigbee-kehitysalusta → Debugger → PC:n USB-portti ja valitse sitten Project -> Debug, ohjelma ladataan kehitysalustaan automaattisesti.

Valitse sitten Debug -> Go käynnistääksesi ohjelman, ja näet 4 LEDiä vilkkuvan peräkkäin! Vaikka tämä on yksinkertainen ei voi olla yksinkertaisempi pieniä kokeita, mutta kun onnistuin saavuttamaan sen, tai pieni innoissaan ~ huh!

V. Johtopäätös

Tässä asiakirjassa "LED-valon vilkkuva kokeilu" pohjana, vastaavasti IAR: n kokoonpanosta, ohjelmakoodin valmistelusta sekä kokoamis- ja virheenkorjausprosessista esittelee koko toteutusprosessin. Seuraava, se on kehitysmenettelyjen perusprosessin ymmärtämisessä, joka perustuu useiden CC2430-peruskokeiden kehittämiseen, joihin liittyy ajastimia, sarjaliikennettä, AD-muunnosta, järjestelmän lepotilaa ja vahtikoiria jne., Joten pysy kuulolla!






Edellinen: [Viitattu] Zigbee matka (I): maailman alku
Seuraava: [Raportti]Zigbee matka (III): Muutama tärkeä CC2430 peruskokeita - ulkoiset keskeytykset
Koodi maanviljelijä verkko, vain julkaistu prosessissa käytännön, kohdannut teknisiä vaikeuksia, älä johda muita harhaan.
Sinun täytyy kirjautua sisään ennen kuin voit lähettää viestiä takaisin Kirjaudu sisään | Rekisteröidy

T ämä versio integraalisista säännöistä


VASTUUVAPAUSLAUSEKE: Kaikki Code Farmerin julkaisemat ohjelmistot, ohjelmointimateriaalit tai artikkelit on tarkoitettu käytettäväksi vain oppimis- ja tutkimustarkoituksiin; edellä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muutoin kaikki seuraukset jäävät käyttäjien itsensä kannettaviksi. Tämän sivuston tiedot verkosta, tekijänoikeuskiistalla ei ole mitään tekemistä tämän sivuston kanssa. Sinun on poistettava edellä mainittu sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tuet aitoa ohjelmistoa, osta rekisteröinti ja saat parempaa aitoa palvelua. Jos on olemassa rikkomuksia, ota meihin yhteyttä sähköpostitse, jotta voimme käsitellä sitä.

Sähköposti To:help@itsvse.com

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

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

Quick ReplyTakaisin alkuunTakaisin luetteloon