|
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á komunikace、Konverze na AD、Systematický spánek i hlídací psiatd., tak zůstaňte naladěni!
|