|
1. Ylä- ja alakerrosten yhdistäminen Edellisessä artikkelissaZigbee-matka (1): Maaperän murtaminen, esittelemme lyhyesti Zigbeen ja sen kehitysympäristön. OK, nyt kun työkalut ovat valmiit, herää kysymys: miten näitä ohjelmistoja ja laitteistoja voi käyttää ohjelman kirjoittamiseen, joka voi toimia? Tämä artikkeli on pohjimmiltaan vastaus yllä mainittuihin kysymyksiin: Otetaan pieni kokeilu "LED-valon vilkkumisesta" esimerkkinä siitä, miten IAR voidaan konfiguroida CC2430-pohjaisten ohjelmien kehittämiseen ja miten sitä käytetäänIARKirjoita ja debugata ohjelmia verkossa. 2. IAR-konfiguraatio IAR on tehokas sulautettu kehitysalusta, joka tukee monenlaisia siruja. Jokaisella IAR:n projektilla voi olla oma konfiguraationsa, mukaan lukien laitetyyppi, pino/pino, linkittäjä, debuggeri jne. (1) Luo uusi työtila ja projekti Ensiksi luo uusi kansio ledtest. Avaa IAR ja valitse päävalikosta Tiedosto -> Uusi -> Työtila luodaksesi uuden työtilan. Valitse Projekti -> Luo uusi projekti -> Tyhjennä projekti, klikkaa OK ja tallenna projektitiedosto kansioon ledtest, nimeltään ledtest.ewp (kuten alla).
(2) Määritä yleiset asetukset Kohteen asettaminen: Laite: CC2430; Kooditila: Lähellä; Datamalli: Large; Kutsukonventio:XDATA-pinon reetrantti
Dataosoittimen asetus: DPTR:ien määrä: 1
Pino/Kasa -asetus: XDATA-pinon koko: 0x1FF
(3) Linkkerin asetukset Linker-komentotiedosto: Valitse lnk51ew_cc2430.xcl
(4) Debugger-asetukset: Driver: Texas Instruments (Tämä koe on oikea koneen virheenkorjaus, joten valitse TI; Jos muut ohjelmat haluavat käyttää IAR-simulaattoria, voit valita simulaattorin) Laitteen kuvaustiedosto:CC2430.ddf
Tässä vaiheessa tämän kokeen IAR-konfiguraatio on käytännössä ohi, ja seuraavassa on johdanto sen koodaustoteutukseen. 3. Ohjelmakoodin kirjoittaminen(1) Luo uusi menettelyasiakirja Valitse File->New->File ja luo uusi tiedosto main.c. (2) Esittele otsikkotiedostot CC2430-pohjaisissa ohjelmissa on oltava viittaus ioCC2430.h:iin, joka määrittelee CC2430:n erilaisten erikoisfunktiorekisterien (SFR) osoitekartoituksen. #include //引入CC2430所对应的头文件(包含各SFR的定义)
Tämä tiedosto on sisäänrakennettu IAR:ään (samankaltainen kuin stdio.h), vie hiiri tämän koodirivin päälle, napsauta hiiren oikealla, valitseAloita "ioCC2430.h"nähdäksesi tämän otsikkotiedoston koko sisällön. (3) Määrittele LED-nasat Katso kehityslevyn piirikaavio seuraavasti:
On nähtävissä, että LED1~4 ohjataan pinnoilla P1_0~P4_0, joten LED1, LED2, LED3 ja LED4 voidaan määritellä pinneiksi P1_0, P2_0, P3_0 ja P4_0. #define LED1 P1_0 // Määrittele LED1 P1_0-portin ohjaukseksi #define LED2 P1_1 // Määrittele LED2 P1_1 porttien ohjaukseksi #define LED3 P1_2 // Määrittele LED3 P1_2 porttiohjaukseksi #define LED4 P1_3 // Määrittele LED4 P1_3 porttiohjaukseksi
(4) päätehtävä Seuraavaksi ala kirjoittaa pääfunktiota. Ensinnäkin ennen P1.0~P1.4-portin käyttöä on asetettava sen työtila ja tulo/lähtösuunta, mikä sisältää kaksi SFR:ää: P1SEL ja P1DIR. P1SEL = 0x00; Aseta P1 normaaliksi I/O-portiksi P1DIR |= 0x0F; Aseta lähtö P1.0, P1.1, P1.2, P1.3
Zigbee-vinkit CC2430:ssa on:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Yhteensä 21 I/O-porttia. Niitä voidaan käyttää yleiskäyttöisinä digitaalisina I/O-laitteina tai yhdistää oheis-IO:ita, kuten ADC-laitteita, ajoitus-/laskureita tai USART-laitteita. CC2430:n SFR:ssä on kolme rekisteriluokkaa, joita voidaan käyttää näiden IO-porttien konfigurointiin: (1)PxSEL(x on 0/1/2) :P 0/P1/P2-porttitoiminnon valinta 0: Yleinen numeerinen IO, 1: Peripherinen IO, oletusarvo on 0 (2)PxDIR(x on 0/1/2) :P 0/P1/P2-portin suunta 0: tulo, 1: ulostulo, oletusarvo on 0 (3)PxINP(x on 0/1) :P 0/P1-portin tulotila 0: Vedä ylös/vedä alas, 1: Kolme tilaa, oletusarvo on 0 Se täytyy konfiguroida IO-porttia käytettäessä, ja jos se on oletus, järjestelmän oletusarvo otetaan käyttöön. Sitten käynnistä 4 LEDiä ja aseta ne sammumaan: led1 = 1; led2 = 1; led3 = 1; led4 = 1;
Lopuksi kirjoita LED-valon vilkkumisefektikoodi: led1 = 0; LED1 välähtää Delay(10); led1 = 1; Delay(10);
led2 = 0; LED2 välähtää Delay(10); led2 = 1; Delay(10);
led3 = 0; LED3 vilkkuu Delay(10); led3 = 1; Delay(10);
led4 = 0; LED4 vilkkuu Delay(10); led4 = 1; Delay(10);
Se sisältää viive-alifunktion Delay(unsigned char n): void Delay (allekirjoittamaton hahmo n) { Allekirjoittamaton Char I; allekirjoittamaton int j; for(i = 0; I < n; i++) for(j = 1; j; j++) ; }
(5) Koodien yleiskatsaus Yhdistä yllä oleva koodi yhdeksi kokonaisuudeksi seuraavasti: //引入头文件
#include //引入CC2430所对应的头文件(包含各SFR的定义)
//定义LED引脚
#define johti1 P1_0 //定义LED1为P1_0口控制
#define led2 P1_1 //定义LED2为P1_1口控制
#define johti 3 P1_2 //定义LED3为P1_2口控制
#define johti 4 P1_3 //定义LED4为P1_3口控制 //延时子程序
voidViive(Allekirjoittamaton charn) {
Allekirjoittamaton chari;
Allekirjoittamaton intj;
for(i =0; I < n; i++)
for(j =1; j; j++) ;
}
voidpää(void)
{ P1SEL =0x00; Aseta P1 normaaliksi I/O-portiksi P1DIR |=0x0F; Aseta lähtö P1.0, P1.1, P1.2, P1.3
led1 =1; //初始化,4个led灯全熄 led2 =1; led3 =1; led4 =1;
kun(1) //开始循环 { led1 =0; //led1闪烁 Viive(10); led1 =1; Viive(10);
led2 =0; //led2闪烁 Viive(10); led2 =1; Viive(10);
led3 =0; //led3闪烁 Viive(10); led3 =1; Viive(10);
led4 =0; //led4闪烁 Viive(10); led4 =1; Viive(10); }
}
OK, tämän pienen kokeen koodi on kirjoitettu, eikö se ole hyvin yksinkertaista, hehe~ 4. Kääntäminen ja virheenkorjaus Valitse Project -> Make, käännä koodi, ja onnistuessaan seuraava tuloste ilmestyy:
LehdistöZigbee Development Board → Debugger → USB-liitäntä PC:lleja valitse Project -> Debug, jolloin ohjelma ladataan automaattisesti taululle. Valitse sitten Debug -> Go käynnistääksesi ohjelman, ja näet neljä LED-valoa vilkkuvan vuorotellen! Vaikka tämä on pieni koe, joka on liian yksinkertainen ollakseen yksinkertainen, kun kirjoittaja onnistui sen toteuttamaan, olin silti vähän innoissani~ hehe! 5. Yhteenveto Perustuen "LED-valon välkkymiskokeeseen", tämä artikkeli esittelee koko toteutusprosessin IAR:n konfiguroinnista, ohjelmakoodin kirjoittamisesta sekä käännös- ja debuggausprosessista. Seuraavassa artikkelissa, perustuen ohjelman kehittämisen perusprosessiin, esittelemme useita CC2430-kehityksen peruskokeitaAjastin、Sarjaviestintä、AD-muunnos、Järjestelmällinen uni sekä vahtikoiratjne., joten pysykää kuulolla!
|