Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 9158|Odpověď: 0

Zigbee Journey (2): První program CC2430 – experiment s blikaním LED světlem

[Kopírovat odkaz]
Zveřejněno 30.10.2014 23:15:39 | | | |
1. Propojení horní a dolní úrovně

     V předchozím článkuZigbee Journey (1): Rozbíjení základů, stručně představujeme Zigbee a jeho vývojové prostředí. Dobře, teď když jsou nástroje hotové, vyvstává otázka: jak použít tento software a hardware k napsání programu, který může běžet?

     Tento článek má v podstatě odpovědět na výše uvedené otázky: Vezměte si malý experiment "blikání LED světlem" jako příklad, abychom představili, jak nakonfigurovat IAR tak, aby bylo vhodné pro vývoj programů založených na CC2430, a jak jej používatIARPište a ladíte programy online.

2. Konfigurace IAR

     IAR je výkonná vestavěná vývojová platforma, která podporuje širokou škálu čipů. Každý projekt v IAR může mít vlastní konfiguraci, včetně typu zařízení, zásobníku/zásobníku, linkeru, debuggeru atd.

(1) Vytvořit nový pracovní prostor a projekt

     Nejprve vytvořte novou složku ledtest. Otevřete IAR a vyberte hlavní menu File -> New -> Workspace pro vytvoření nového pracovního prostoru.

     Vyberte Project -> Vytvořit nový projekt -> Prázdný projekt, klikněte na OK a uložte soubor projektu do složky ledtest nazvané ledtest.ewp (jak je uvedeno níže).

(2) Konfigurovat obecné možnosti

       Nastavení cíle: Zařízení: CC2430;

                         Kód režim: Blízko;

                         Datový model: Velký;

                         Volání konvence:XDATA stack reetrant

     Nastavení ukazatele dat: Počet DPTR: 1

     Nastavení zásobníku/haldy: XDATA velikost zásobníku: 0x1FF

(3) Nastavení linkeru

     Příkazový soubor linker: Vyberte lnk51ew_cc2430.xcl

(4) Nastavení ladicího systému:

     Ovladač: Texas Instruments (Tento experiment je skutečné ladění stroje, takže zvolte TI; Pokud jiné programy chtějí použít IAR simulátor, můžete zvolit Simulator)
     Soubor popisu zařízení: CC2430.ddf

      V této fázi je konfigurace IAR pro tento experiment v podstatě u konce a následuje úvod do implementace jejího kódování.

3. Psaní programového kódu(1) Vytvořit nový procesní dokument

      Vyberte File->New->File a vytvořte nový soubor main.c.

(2) Zavedení souborů s hlavičkami

      Programy založené na CC2430 musí obsahovat odkaz na ioCC2430.h, který definuje adresní mapování různých speciálních funkčních registrů (SFR) CC2430.

#include         //引入CC2430所对应的头文件(包含各SFR的定义)

      Tento soubor je zabudovaný v IAR (podobně jako stdio.h), najeďte myší na tento řádek kódu, klikněte pravým tlačítkem, vyberteOPen "ioCC2430.h"pro zobrazení celého obsahu tohoto hlavičkového souboru.

(3) Definovat LED piny

     Podívejte se na schéma zapojení vývojové desky následovně:

     Je vidět, že LED1~4 je řízena piny P1_0~P4_0, takže LED1, LED2, LED3 a LED4 lze definovat jako piny P1_0, P2_0, P3_0 a P4_0.

#define LED1 P1_0 // Definujte LED1 jako ovládání P1_0 portu
#define LED2 P1_1 // Definujte LED2 jako P1_1 ovládání portů
#define LED3 P1_2 // Definujte LED3 jako P1_2 ovládání portů
#define LED4 P1_3 // Definujte LED4 jako P1_3 ovládání portů

(4) hlavní funkce

     Poté začněte psát hlavní funkci.

     Především, před použitím portu P1.0~P1.4 je nutné nastavit jeho pracovní režim a směr vstupu/výstupu, což zahrnuje dva SFR: P1SEL a P1DIR.

  P1SEL = 0x00;          Nastavte P1 na normální I/O port
  P1DIR |= 0x0F;          Nastavte výstup P1.0, P1.1, P1.2, P1.3

Zigbee Tips
CC2430 má:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Celkem 21 vstupně/výstupních portů. Mohou být použity jako univerzální digitální I/O nebo mohou být použity k propojení periferních IO, jako jsou ADC, časovací počítače nebo USART.
V SFR CC2430 existují tři třídy registrů, které lze použít pro konfiguraci těchto IO portů:
(1)PxSEL(x je 0/1/2) :P výběr portové funkce 0/P1/P2
                                0: Univerzální numerický vstup, 1: Periferní vstup, výchozí hodnota je 0
(2)PxDIR(x je 0/1/2) :P směr portů 0/P1/P2
                                0: vstup, 1: výstup, výchozí hodnota je 0
(3)PxINP(x je 0/1) :P vstupní režim portu 0/P1
                                0: Pull/pull down, 1: Tři stavy, výchozí je 0
Je potřeba ho nastavit při použití IO portu, a pokud je výchozí, vezme se výchozí hodnota systému.

     Pak inicializujte 4 LED diody a nastavte je tak, aby všechny zhasly:

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

     Nakonec napište kód efektu blikajícího LED světla:

    led1 = 0;  LED1 bliká
    Delay(10);
    led1 = 1;
    Delay(10);
   
    led2 = 0;  LED2 bliká
    Delay(10);
    led2 = 1;
    Delay(10);
   
    led3 = 0;  LED3 blikání
    Delay(10);
    led3 = 1;
    Delay(10);
   
    led4 = 0;  LED4 blikání
    Delay(10);
    led4 = 1;
    Delay(10);


     Zahrnuje zpožděnou podfunkci Delay(unsigned character n):

void Delay(unsigned character n)  {
  nepodepsaný char i;
  nepodepsáno int j;
  for(i = 0; I < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Přehled kódu

      Spojte výše uvedený kód do jednoho celku, následovně:

//引入头文件
#include         //引入CC2430所对应的头文件(包含各SFR的定义)

//定义LED引脚
#define vedl1 P1_0         //定义LED1为P1_0口控制
#define vedl2 P1_1         //定义LED2为P1_1口控制
#define vedení3 P1_2         //定义LED3为P1_2口控制
#define Led4 P1_3         //定义LED4为P1_3口控制 //延时子程序
prázdnotaDelay(nepodepsáno charn)  {
  nepodepsáno chari;
  nepodepsáno intj;
  pro(i =0; I < n; i++)
    pro(j =1; j; j++)
    ;
}

prázdnotamain(prázdnota)
{
  P1SEL =0x00;         Nastavte P1 na normální I/O port
  P1DIR |=0x0F;         Nastavte výstup P1.0, P1.1, P1.2, P1.3
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  led4 =1;
  
  zatímco(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Delay(10);
    led1 =1;
    Delay(10);
   
    led2 =0;  //led2闪烁
    Delay(10);
    led2 =1;
    Delay(10);
   
    led3 =0;  //led3闪烁
    Delay(10);
    led3 =1;
    Delay(10);
   
    led4 =0;  //led4闪烁
    Delay(10);
    led4 =1;
    Delay(10);
  }
}

     Dobře, kód pro tenhle malý experiment je napsán, není to velmi jednoduché, hehe~

4. Kompilace a ladění

     Vyberte Project -> Make, zkompilujte kód a pokud je úspěšný, zobrazí se následující výstup:

     TiskZigbee Development Board → Debugger → USB rozhraní pro PCa poté vyberte Project -> Debug a program se automaticky stáhne na desku.

     Pak zvolte Debug -> Spustite program a uvidíte 4 LED světla blikající po druhém! Ačkoliv je to malý experiment, který je příliš jednoduchý na to, aby byl jednoduchý, když to autor úspěšně pochopil, byl jsem stále trochu nadšený~ hehe!

5. Závěr

     Na základě "experimentu blikání LED světlem" tento článek představuje celý proces implementace od konfigurace IAR, psaní programového kódu až po proces kompilace a ladění. V dalším článku, založeném na pochopení základního procesu vývoje programu, představíme několik základních experimentů pro vývoj CC2430ČasovačSériová komunikaceKonverze na ADSystematický spánek i hlídací psiatd., tak zůstaňte naladěni!






Předchozí:Zigbee Journey (1): Průlom základů
Další:Zigbee Journey (3): Několik důležitých základních experimentů CC2430 – vnější přerušení
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com