Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 9158|Отговор: 0

Zigbee Journey (2): Първата програма CC2430 - експеримент с LED светлинно мигане

[Копирай линк]
Публикувано в 30.10.2014 г. 23:15:39 ч. | | | |
1. Свързване на горния и долния етаж

     В предишната статияZigbee Journey (1): Пробиване на основите, накратко представяме Zigbee и неговата среда за разработка. Добре, сега, когато инструментите са готови, възниква въпросът: как да използваме този софтуер и хардуер, за да напишем програма, която може да работи?

     Тази статия по същество отговаря на горните въпроси: Вземете малкия експеримент с "LED светлинно мигане" като пример, за да въведете как да конфигурирате IAR да бъде подходящ за разработване на програми, базирани на CC2430, и как да го използватеIARПишете и отстранявайте грешки програми онлайн.

2. Конфигурация на IAR

     IAR е мощна вградена платформа за разработка, която поддържа голямо разнообразие от чипове. Всеки проект в IAR може да има собствена конфигурация, включително тип устройство, стек/стек, линкер, дебъгер и др.

(1) Създаване на ново работно пространство и проект

     Първо, създайте нова папка за ledtest. Отворете IAR и изберете главното меню File -> New -> Workspace, за да създадете ново работно пространство.

     Изберете Project -> Create New Project -> Empty Project, кликнете OK и запазете файла на проекта в папката ledtest, наречена ledtest.ewp (както е показано по-долу).

(2) Конфигуриране на общите опции

       Настройка на целта: Устройство: CC2430;

                         Режим на код: Near;

                         Модел на данни: Голям;

                         Извикване на конвенция:XDATA stack reetrant

     Настройка на указател на данни: Брой DPTR-и: 1

     Настройка на стек/купчина: размер на стека XDATA: 0x1FF

(3) Настройки на линкера

     Linker команден файл: Изберете lnk51ew_cc2430.xcl

(4) Настройки на дебъгера:

     Драйвер: Texas Instruments (Този експеримент е истинско машинно отстраняване на грешки, така че изберете TI; Ако други програми искат да използват IAR симулатора, можете да изберете Simulator)
     Описание на устройството file:CC2430.ddf

      На този етап конфигурацията на IAR за този експеримент практически приключва, а по-долу е въведение в неговата програмна реализация.

3. Писане на програмен код(1) Създаване на нов процесуален документ

      Изберете File->New->File и създайте нов файл main.c.

(2) Въвеждане на заглавни файлове

      Програмите, базирани на CC2430, трябва да включват препратка към ioCC2430.h, която дефинира адресното картографиране на различните специални регистри на функции (SFR) на CC2430.

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

      Този файл е вграден в IAR (подобно на stdio.h), задръжте курсора върху този ред код, кликнете с десен бутон, изберетеOPen "ioCC2430.h"за да видите пълното съдържание на този заглавен файл.

(3) Определете LED пиновете

     Вижте схемата на платката за разработка по следния начин:

     Вижда се, че LED1~4 се управлява съответно от пинове P1_0~P4_0, така че LED1, LED2, LED3 и LED4 могат да се дефинират като пинове P1_0, P2_0, P3_0 и P4_0 съответно.

#define LED1 P1_0 // Дефинирайте LED1 като контрол на P1_0 порт
#define LED2 P1_1 // Дефинирайте LED2 като P1_1 контрол на порта
#define LED3 P1_2 // Дефинирайте LED3 като P1_2 порт контрол
#define LED4 P1_3 // Дефинирайте LED4 като P1_3 порт контрол

(4) основна функция

     След това започнете да пишете основната функция.

     Първо, преди да използвате порта P1.0~P1.4, е необходимо да зададете неговия работен режим и посока на вход/изход, което включва два SFR: P1SEL и P1DIR.

  P1SEL = 0x00;          Настрой P1 на нормалния входно/изходен порт
  P1DIR |= 0x0F;          Задайте P1.0, P1.1, P1.2, P1.3 като изход

Zigbee съвети
CC2430 има:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Общо 21 I/O порта. Те могат да се използват като универсални цифрови входно-изходни системи, или за свързване на периферни входни устройства като АЦП, тайминг/броячи или USART.
В SFR на CC2430 има три класа регистри, които могат да се използват за конфигуриране на тези входни портове:
(1)PxSEL(x е 0/1/2) :P избор на функция за порт 0/P1/P2
                                0: Универсален числов вход, 1: Периферен изход, по подразбиране е 0
(2)PxDIR(x е 0/1/2) :P посока на порта 0/P1/P2
                                0: вход, 1: изход, по подразбиране е 0
(3)PxINP(x е 0/1) :P входен режим на порт 0/P1
                                0: Pull up/pull down, 1: Три състояния, по подразбиране е 0
Трябва да се конфигурира при използване на входния порт, и ако е по подразбиране, се използва стандартната стойност на системата.

     След това инициализирайте 4-те светодиода и ги настройте на всички изгасване:

  led1 = 1;   
  lead2 = 1;
  lead3 = 1;
  lead4 = 1;

     Накрая, запиши кода за ефекта на мигане на LED светлината:

    led1 = 0;  LED1 мигане
    Delay(10);
    led1 = 1;
    Delay(10);
   
    lead2 = 0;  LED2 светкавици
    Delay(10);
    lead2 = 1;
    Delay(10);
   
    led3 = 0;  LED3 мигане
    Delay(10);
    lead3 = 1;
    Delay(10);
   
    led4 = 0;  LED4 мигане
    Delay(10);
    lead4 = 1;
    Delay(10);


     Тя включва подфункция за закъснение Delay(unsigned char n):

void Delay(неподписан символ n)  {
  неподписан Чар I;
  неподписан интелект J;
  for(i = 0; I < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Преглед на кода

      Комбинирайте горния код в едно цяло, както следва:

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

//定义LED引脚
#define led1 P1_0         //定义LED1为P1_0口控制
#define led2 P1_1         //定义LED2为P1_1口控制
#define led3 P1_2         //定义LED3为P1_2口控制
#define led4 P1_3         //定义LED4为P1_3口控制 //延时子程序
ПразнотаЗабавяне(без подпис Чарn)  {
  без подпис Чарi;
  без подпис intj;
  за(i =0; I < n; i++)
    за(j =1; j; j++)
    ;
}

Празнотаосновно(Празнота)
{
  P1SEL =0x00;         Настрой P1 на нормалния входно/изходен порт
  P1DIR |=0x0F;         Задайте P1.0, P1.1, P1.2, P1.3 като изход
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  LED4 =1;
  
  докато(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Забавяне(10);
    led1 =1;
    Забавяне(10);
   
    led2 =0;  //led2闪烁
    Забавяне(10);
    led2 =1;
    Забавяне(10);
   
    led3 =0;  //led3闪烁
    Забавяне(10);
    led3 =1;
    Забавяне(10);
   
    LED4 =0;  //led4闪烁
    Забавяне(10);
    LED4 =1;
    Забавяне(10);
  }
}

     Добре, кодът за този малък експеримент е написан, нали е много прост, хехе~

4. Компилация и отстраняване на грешки

     Изберете Project -> Make, компилирайте кода и ако е успешно, ще се появи следният изход:

     ПресаZigbee Development Board → Debugger → USB интерфейс за PCи след това изберете Project -> Debug, и програмата автоматично ще бъде изтеглена на платката.

     След това изберете Debug -> Стартирайте програмата, и ще видите 4 LED светлини, които мигат една след друга! Въпреки че това е малък експеримент, който е твърде прост, за да бъде прост, когато авторът успешно го реализираше, все пак бях малко развълнуван~ хехе!

5. Заключение

     Въз основа на експеримента "LED светлинно мигане", тази статия представя целия процес на имплементация – от конфигурацията на IAR, писането на програмен код и процеса на компилация и отстраняване на грешки. В следващата статия, базирана на разбирането на основния процес на разработване на програмата, ще представим няколко основни експеримента за разработка на CC2430ТаймерСерийна комуникацияПреобразуване в ADСистематичен сън и пазачии т.н., така че останете на линия!






Предишен:Зигби Пътешествие (1): Пробиване на земята
Следващ:Zigbee Journey (3): Няколко важни основни експеримента с CC2430 – външно прекъсване
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com