Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 9158|Vastaus: 0

Zigbee Journey (2): Ensimmäinen CC2430-ohjelma – LED-valon vilkkumiskoe

[Kopioi linkki]
Julkaistu 30.10.2014 23.15.39 | | | |
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 peruskokeitaAjastinSarjaviestintäAD-muunnosJärjestelmällinen uni sekä vahtikoiratjne., joten pysykää kuulolla!






Edellinen:Zigbee-matka (1): Maan murtaminen
Seuraava:Zigbee Journey (3): Useita tärkeitä CC2430-peruskokeita – ulkoinen keskeytys
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com