Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 9158|Odpowiedź: 0

Zigbee Journey (2): Pierwszy program CC2430 – eksperyment z miganiem światłem LED

[Skopiuj link]
Opublikowano 30.10.2014 23:15:39 | | | |
1. Połączenie górnego i dolnego poziomu

     W poprzednim artykulePodróż Zigbee (1): Przełamywanie podstaw, krótko przedstawiamy Zigbee i jego środowisko rozwojowe. OK, skoro narzędzia są już gotowe, pojawia się pytanie: jak użyć tego oprogramowania i sprzętu, aby napisać program, który będzie działał?

     Ten artykuł ma zasadniczo odpowiedzieć na powyższe pytania: Weźmy mały eksperyment z "miganiem światła LED" jako przykład, aby pokazać, jak skonfigurować IAR odpowiedni do tworzenia programów opartych na CC2430 oraz jak go używaćIARPisz i debuguj programy online.

2. Konfiguracja IAR

     IAR to potężna platforma do tworzenia wbudowanych systemów rozwojowych, która obsługuje szeroką gamę układów scalonych. Każdy projekt w IAR może mieć własną konfigurację, obejmującą typ urządzenia, stos/stos, linker, debugger itd.

(1) Utworzenie nowej przestrzeni roboczej i projektu

     Najpierw stwórz nowy folder ledtest. Otwórz IAR i wybierz główne menu Plik -> Nowy -> Workspace, aby utworzyć nową przestrzeń roboczą.

     Wybierz Projekt -> Utwórz nowy projekt -> Pusty projekt, kliknij OK i zapisz plik projektu do folderu ledtest, nazwanego ledtest.ewp (jak pokazano poniżej).

(2) Konfiguruj opcje ogólne

       Ustawienie celu: Urządzenie: CC2430;

                         Tryb kodu: Blisko;

                         Model danych: Duży;

                         Wywoływanie konwencji:XDATA stack reetrant

     Ustawienie wskaźnika danych: Liczba DPTR: 1

     Ustawienia stosu/kopca: Rozmiar stosu XDATA: 0x1FF

(3) Ustawienia linkera

     Plik poleceń linker: Wybierz lnk51ew_cc2430.xcl

(4) Ustawienia debugera:

     Sterownik: Texas Instruments (Ten eksperyment to prawdziwe debugowanie maszynowe, więc wybierz TI; Jeśli inne programy chcą korzystać z symulatora IAR, możesz wybrać Simulator)
     Plik opisu urządzenia: CC2430.ddf

      W tym momencie konfiguracja IAR dla tego eksperymentu jest praktycznie zakończona, a poniżej przedstawiono wprowadzenie do implementacji kodowania.

3. Pisanie kodu programu(1) Utworzenie nowego dokumentu proceduralnego

      Wybierz File->New->File i utwórz nowy plik main.c.

(2) Wprowadzenie plików nagłówków

      Programy oparte na CC2430 muszą zawierać odniesienie do ioCC2430.h, które definiuje mapowanie adresów różnych specjalnych rejestrów funkcji (SFR) CC2430.

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

      Ten plik jest wbudowany w IAR (podobnie jak stdio.h), najedź kursorem na tę linię kodu, kliknij prawym przyciskiem, wybierzOPen "ioCC2430.h"aby zobaczyć pełną zawartość tego pliku nagłówka.

(3) Zdefiniuj piny LED

     Zobacz schemat obwodu płyty rozwojowej w następujący sposób:

     Widać, że LED1~4 jest sterowany odpowiednio przez piny P1_0~P4_0, więc LED1, LED2, LED3 i LED4 można zdefiniować jako piny P1_0, P2_0, P3_0 i P4_0 odpowiednio.

#define LED1 P1_0 // Zdefiniuj LED1 jako kontrolę portu P1_0
#define LED2 P1_1 // Zdefiniuj LED2 jako P1_1 sterowanie portem
#define LED3 P1_2 // Zdefiniuj LED3 jako P1_2 kontrolę portów
#define LED4 P1_3 // Zdefiniuj LED4 jako P1_3 sterowanie portem

(4) Główna funkcja

     Następnie zacznij pisać główną funkcję.

     Przede wszystkim, przed użyciem portu P1.0~P1.4, należy ustawić tryb pracy oraz kierunku wejścia/wyjścia, który obejmuje dwa SFR: P1SEL i P1DIR.

  P1SEL = 0x00;          Ustaw P1 na normalny port I/O
  P1DIR |= 0x0F;          Ustaw P1.0, P1.1, P1.2, P1.3 jako wyjście

Porady Zigbee
CC2430 posiada:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Łącznie 21 portów I/O. Mogą być używane jako uniwersalne cyfrowe I/O lub do łączenia peryferyjnych IO, takich jak ADC, liczniki czasowe lub USART.
W SFR CC2430 istnieją trzy klasy rejestrów, które można wykorzystać do konfiguracji tych portów IO:
(1)PxSEL(x to 0/1/2) :P wybór funkcji portu 0/P1/P2
                                0: Uniwersalny numeryczny IO, 1: Peripheral IO, domyślnie 0
(2)PxDIR(x to 0/1/2) :P kierunku portów 0/P1/P2
                                0: wejście, 1: wyjście, domyślnie 0
(3)PxINP(x to 0/1) :P tryb wejścia portu 0/P1
                                0: Podciągnij/pociągnij w dół, 1: Trzy stany, domyślnie 0
Trzeba go skonfigurować podczas korzystania z portu IO, a jeśli jest domyślny, przyjmuje się domyślną wartość systemu.

     Następnie inicjalizuj 4 diody LED i ustaw je na gaśnięcie:

  led1 = 1;   
  led2 = 1;
  LED3 = 1;
  led4 = 1;

     Na koniec zapisz kod efektu światła LED:

    led1 = 0;  Błyski LED1
    Delay(10);
    led1 = 1;
    Delay(10);
   
    led2 = 0;  Błyski 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);


     Dotyczy podfunkcji opóźnienia Delay(znak unsigned znak: n):

void Delay(niepodpisany znak n)  {
  niepodpisany char i;
  nieznakomitym int j;
  dla(i = 0; I < n; i++)
    for(j = 1; j; j++)
    ;
}   


(5) Przegląd kodeksu

      Połącz powyższy kod w jedną całość, w następujący sposób:

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

//定义LED引脚
#define prowadził1 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口控制 //延时子程序
pustkaOpóźnienie(Niepodpisany charn)  {
  Niepodpisany chari;
  Niepodpisany intj;
  dla(i =0; I < n; i++)
    dla(j =1; j; j++)
    ;
}

pustkamain(pustka)
{
  P1SEL =0x00;         Ustaw P1 na normalny port I/O
  P1DIR |=0x0F;         Ustaw P1.0, P1.1, P1.2, P1.3 jako wyjście
  
  led1 =1;   //初始化,4个led灯全熄
  led2 =1;
  led3 =1;
  led4 =1;
  
  podczas gdy(1)     //开始循环
  {
    led1 =0;  //led1闪烁
    Opóźnienie(10);
    led1 =1;
    Opóźnienie(10);
   
    led2 =0;  //led2闪烁
    Opóźnienie(10);
    led2 =1;
    Opóźnienie(10);
   
    led3 =0;  //led3闪烁
    Opóźnienie(10);
    led3 =1;
    Opóźnienie(10);
   
    led4 =0;  //led4闪烁
    Opóźnienie(10);
    led4 =1;
    Opóźnienie(10);
  }
}

     OK, kod do tego małego eksperymentu został napisany, czyż nie jest bardzo prosty, hehe~

4. Kompilacja i debugowanie

     Wybierz Projekt -> Stwórz, skompiluj kod i jeśli się powiedzie, pojawi się następujący wynik:

     PrasaZigbee Development Board → Debugger → interfejs USB dla PCa następnie wybierz Projekt -> Debug, a program zostanie automatycznie pobrany na tablicę.

     Następnie wybierz Debug -> Przejdź do uruchomienia programu i zobaczysz 4 diody LED po drodze! Chociaż to mały eksperyment, zbyt prosty, by był prosty, gdy autor skutecznie go zrealizował, byłem trochę podekscytowany~ hehe!

5. Podsumowanie

     Opierając się na "eksperymencie z miganiem światła LED", artykuł ten wprowadza cały proces implementacji, od konfiguracji IAR, przez pisanie kodu programowego, aż po proces kompilacji i debugowania. W kolejnym artykule, opierając się na zrozumieniu podstawowego procesu tworzenia programu, przedstawimy kilka podstawowych eksperymentów dotyczących rozwoju CC2430TimerKomunikacja szeregowaPrzejście na ADSystematyczny sen oraz psy strażniczeitd., więc bądźcie czujni!






Poprzedni:Podróż Zigbee (1): Przełamywanie kamieni pod ziemię
Następny:Podróż Zigbee (3): Kilka ważnych podstawowych eksperymentów CC2430 – zewnętrzne zakłócenia
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com