| 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++)  
; 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:
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! |