| I. Pokračujeme tam, kde jsme skončili V předchozím článku "Cesta Zigbee (I): Začátek" jsme si stručně představili Zigbee a jeho vývojové prostředí, OK, nyní, když jsou nástroje kompletní, vyvstává otázka: jak využít software a hardware k napsání programu, který lze spustit? Tento článek má v podstatě odpovědět na výše uvedenou otázku: na "blikání světla LED" jako příklad malého experimentu, jak nakonfigurovat IAR pro vývoj programů založených na CC2430, jak použít IAR k psaní a ladění programu online. Konfigurace IAR IAR je výkonná embedded vývojová platforma, která podporuje mnoho druhů čipů, a každý projekt v IAR může mít vlastní konfiguraci, včetně typu zařízení, haldy/zásobníku, linkeru, debuggeru atd. (1) Nová pracovní plocha a projekt Nejprve vytvořte novou složku ledtest, otevřete IAR, zvolte hlavní nabídku Soubor -> Nový -> Pracovní prostor pro vytvoření nového pracovního prostoru. Vyberte Project -> Create New Project -> Empty Project, klikněte na OK a uložte soubor projektu do složky ledtest, pojmenovaný jako: ledtest.ewp (jak je uvedeno níže). (2) Konfigurace obecných možností Nastavení cíle: Zařízení: CC2430; Režim kódu: Blízko; Datový model: Velký; Konvence volání: Zásobník XDATA reetrant
Nastavení datového ukazatele: Počet DPTR: 1
Nastavení zásobníku/Heap: XDATA velikost zásobníku: 0x1FF (3) Nastavení linkeru Příkazový soubor linkeru: select lnk51ew_cc2430.xcl
(4) Nastavení ladicího programu: Ovladač: Texas Instruments (tento experiment pro ladění reálného stroje, proto zvolte TI; v případě jiných postupů použijte emulátor IAR, volitelně Simulátor) Zařízení Soubor s popisem: CC2430.ddf
V tuto chvíli je konfigurace IAR pro tento experiment v podstatě u konce, následuje představení jeho kódové implementace. Za třetí, příprava programového kódu(1) Nový programový soubor Zvolte Soubor->Nový->Soubor, vytvořte nový soubor main.c. (2) Zavedení hlavičkových souborů Programy založené na CC2430 musí obsahovat odkaz na soubor ioCC2430.h, který definuje mapování adres různých typů registrů speciálních funkcí (SFR) CC2430. #include //Zavedení hlavičkového souboru odpovídajícího CC2430 (obsahuje definici jednotlivých SFR). Tento soubor je zabudován do IAR (podobně jako stdio.h), myší na tento řádek kódu klikněte pravým tlačítkem myši, vyberte OPen "ioCC2430.h", zobrazí se celý obsah tohoto hlavičkového souboru. (3) Definujte piny LED Zkontrolujte schéma zapojení vývojové desky, jak je uvedeno níže:
Je známo, že led1~4 jsou řízeny piny P1_0~P4_0 v tomto pořadí, takže můžeme definovat led1, led2, led3, led4 jako piny P1_0, P2_0, P3_0, P4_0 v tomto pořadí. #define led1 P1_0 //definujte LED1 jako řídicí port P1_0 #define led2 P1_1
//define led2 jako P1_1 ovládání portu #define led3 P1_2 //define led3 jako P1_2 ovládání portu #define led4 P1_3 //define led4 pro ovládání portu P1_3 (4) Hlavní funkce Dále začněte psát hlavní funkci. Především je třeba před použitím portů P1.0~P1.4 nastavit jejich pracovní režim a směr vstupu/výstupu, což zahrnuje dva SFR: P1SEL, P1DIR. P1SEL = 0x00; //Nastavení portu P1 jako běžného I/O portu P1DIR |= 0x0F; & nbsp; //Nastavit P1.0 P1.1 P1.2 P1.3 jako výstupy Tipy pro Zigbee CC2430 má P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7 celkem 21 I/O portů. Lze je použít jako univerzální digitální I/O nebo pro připojení periferních IO, jako je ADC, časovač/počítač nebo USART. V SFR CC2430 jsou tři typy registrů, které lze použít ke konfiguraci těchto IO portů: ①PxSEL (x je 0/1/2 ): volba funkce portu P0/P1/P2. PxSEL (x je 0/1/2): volba funkce portu P0/P1/P2. nbsp;0: univerzální digitální IO, 1: periferní IO, výchozí hodnota je 0 ② PxDIR (x je 0/1/2): Směr portu P0/P1/P2. & nbsp;0: vstup, 1: výstup, výchozí hodnota je 0 ③PxINP (x je 0/1): vstupní režim portu P0/P1. 0: nahoru, 1: výstup, výchozí hodnota 0 nbsp;0: pull-up/down, 1: tri-state, výchozí hodnota je 0 Konfigurace je vyžadována při použití portu IO, pokud je výchozí, pak převezměte výchozí nastavení systému. Poté inicializujte 4 LED diody, nastavte je všechny na out:
led1 = 1; led2 = 1; led3 = 1; led4 = 1. Nakonec napište kód pro efekt blikání LED:
led1 = 0; //led1 bliká Delay(10); led1 = 1; Delay(10); led2
= 0; //led2 bliká Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 bliká Delay(10); /
//led3 bliká Delay(10); led3 = 1; Delay(10); led4 = 0; //led4 bliká &
nbsp; Delay(10); led4 = 1; Delay(10);
To zahrnuje podfunkci zpoždění 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) Přehled kódu Spojte výše uvedený kód do celku, jak je uvedeno níže: //Zavedení hlavičkových souborů #include //uveďte hlavičkový soubor odpovídající CC2430 (včetně definice jednotlivých SFR).
//definujte vývody LED #define led1 P1_0 //define LED1 pro ovládání portu P1_0 #define led2 P1_1 //define LED2 jako ovládání portu P1_1 #define led3 P1_2 //define LED3 jako ovládání portu P1_2 #define led4 P1_3 //define LED4 pro ovládání portu P1_3 //podprogram zpoždě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; //Nastavte P1 jako normální I/O port P1DIR |= 0x0F; //Nastavit P1.0 P1.1 P1.2 P1.3 jako výstupy led1 = 1; //inicializace, všechny 4 LED diody zhasnou led2 = 1; //inicializace, všechny 4 ledky zhasnuté led3 = 1; led4 = 1; //inicializace, všechny 4 led diody vypnuty led2 = 1; led3 = 1; led4 = 1; //inicializovat, všechny 4 led světla zhasnout while(1) //zahájení cyklu { led1 = 0; //bliká led1 Delay (10 ); //Zpoždění (10 ); //Zpoždění (10); //Zpoždění (10) delay(10); led1 = 1; //led1 bliká Delay (10 ). led2 = 0; //led2 bliká Delay (10 ); led2 = 1; //led2 bliká led2 = 1; //led2 bliká Delay (10 ). led3 = 0; //led3 bliká Delay (10 ); led3 = 1; //led3 bliká led3 = 1; //led3 bliká Delay (10 ). led4 = 0; //led4 bliká Delay (10 ); led4 = 1; //led4 bliká led4 = 1; //led4 bliká Delay (10 ); //Delay (10 ) } }
OK, kód pro tento malý experiment je napsán, není příliš jednoduchý ach, hehe~! Za čtvrté, kompilace a ladění Vyberte Project -> Make, zkompilujte kód, pokud se to podaří, objeví se následující výstup:
c
Připojte zařízení Zigbee v pořadí vývojová deska Zigbee → ladicí jednotka → port USB počítače a poté vyberte Project -> Debug, program se automaticky stáhne do vývojové desky. Poté zvolte Debug -> Go pro spuštění programu a uvidíte, jak postupně blikají 4 LED diody! Sice se jedná o jednoduchý nemůže být jednodušší malé experimenty, ale když se mi to podařilo dosáhnout, nebo malý nadšený ~ huh! V. Závěr V tomto článku je "experiment s blikáním světla LED" jako základ, respektive od konfigurace IAR, přípravy programového kódu, jakož i procesu kompilace a ladění představuje celý proces implementace. Příště to bude v pochopení základního procesu vývojových postupů na základě představení několika vývojových CC2430 základních experimentů zahrnujících časovače, sériovou komunikaci, AD převod, uspání systému a watchdog , atd, takže zůstaňte naladěni! |