Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 9158|Risposta: 0

Zigbee Journey (2): Il primo programma CC2430 - esperimento di lampeggiamento a LED

[Copiato link]
Pubblicato su 30/10/2014 23:15:39 | | | |
1. Collegamento tra i livelli superiori e inferiori

     Nell'articolo precedenteViaggio Zigbee (1): Sfondare le Terre, presentiamo brevemente Zigbee e il suo ambiente di sviluppo. Ok, ora che gli strumenti sono completi, sorge una domanda: come usare questi software e hardware per scrivere un programma che possa funzionare?

     Questo articolo serve fondamentalmente a rispondere alle domande sopra: prendi come esempio il piccolo esperimento del "lampeggiamento della luce LED" per introdurre come configurare l'IAR in modo che sia adatto allo sviluppo di programmi basati su CC2430 e come utilizzarloIARScrivi e debugga programmi online.

2. Configurazione IAR

     IAR è una potente piattaforma di sviluppo embedded che supporta una vasta gamma di chip. Ogni progetto in IAR può avere la propria configurazione, inclusi tipo di dispositivo, stack/stack, linker, debugger, ecc.

(1) Creare un nuovo Workspace e un nuovo Progetto

     Per prima cosa, crea una nuova cartella ledtest. Apri IAR e seleziona il menu principale File -> Nuovo -> Workspace per creare un nuovo workspace.

     Seleziona Progetto -> Crea nuovo progetto -> Progetto vuoto, clicca su OK e salva il file del progetto nella cartella ledtest, chiamata ledtest.ewp (come mostrato qui sotto).

(2) Configurare le opzioni generali

       Impostazione obiettivo: Dispedito: CC2430;

                         Modalità Codice: Vicino;

                         Modello dati: Grande;

                         Chiamata convenzione:XDATA stack reetrant

     Impostazione del puntatore dati: Numero di DPTR: 1

     Impostazione stack/heap: dimensione stack XDATA: 0x1FF

(3) Impostazioni del linker

     File di comando Linker: Seleziona lnk51ew_cc2430.xcl

(4) Impostazioni del debugger:

     Driver: Texas Instruments (Questo esperimento è un vero debugging di macchina, quindi scegli TI; Se altri programmi vogliono usare il simulatore IAR, puoi scegliere Simulatore)
     Scheda Descrizione dispositivo:CC2430.ddf

      A questo punto, la configurazione IAR per questo esperimento è praticamente terminata, e di seguito è un'introduzione alla sua implementazione di codifica.

3. Scrivere codice di programma(1) Creare un nuovo documento procedurale

      Seleziona File->Nuovo->File e crea un nuovo file main.c.

(2) Introduzione dei file di intestazione

      I programmi basati su CC2430 devono includere un riferimento a ioCC2430.h, che definisce la mappatura degli indirizzi dei vari registri di funzioni speciali (SFR) del CC2430.

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

      Questo file è integrato in IAR (simile a stdio.h), passa il mouse su questa riga di codice, clicca con il tasto destro, selezionaOPen "ioCC2430.h"per vedere il contenuto completo di questo file di intestare.

(3) Definire i pin LED

     Visualizza il diagramma del circuito della scheda di sviluppo come segue:

     Si può vedere che LED1~4 è controllato rispettivamente da pin P1_0~P4_0, quindi LED1, LED2, LED3 e LED4 possono essere definiti rispettivamente come pin P1_0, P2_0, P3_0 e P4_0.

#define LED1 P1_0 // Definisci LED1 come controllo della porta P1_0
#define LED2 P1_1 // Definisci LED2 come controllo P1_1 porta
#define LED3 P1_2 // Definisci LED3 come controllo P1_2 porta
#define LED4 P1_3 // Definisci LED4 come controllo P1_3 porta

(4) Funzione principale

     Successivamente, inizia a scrivere la funzione principale.

     Prima di tutto, prima di usare la porta P1.0~P1.4, è necessario impostare la modalità di funzionamento e la direzione di ingresso/uscita, che coinvolge due SFR: P1SEL e P1DIR.

  P1SEL = 0x00;          Imposta P1 sulla porta I/O normale
  P1DIR |= 0x0F;          Imposta P1.0, P1.1, P1.2, P1.3 come uscita

Punte Zigbee
Il CC2430 ha:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Un totale di 21 porte I/O. Possono essere utilizzati come I/O digitali generici oppure per collegare IO periferici come ADC, contatori di temporizzazione o USART.
Ci sono tre classi di registri nell'SFR del CC2430 che possono essere utilizzate per configurare queste porte IO:
(1)PxSEL(x è 0/1/2) :P Selezione della funzione della porta 0/P1/P2
                                0: Universal numeric IO, 1: Peripheral IO, il valore predefinito è 0
(2)PxDIR(x è 0/1/2) :P direzione della porta 0/P1/P2
                                0: input, 1: output, il predefinito è 0
(3)PxINP(x è 0/1) :P modalità di ingresso porta 0/P1
                                0: Tira su/tira giù, 1: Tre stati, il valore predefinito è 0
Deve essere configurato quando si utilizza la porta IO, e se è predefinito, viene preso il valore predefinito del sistema.

     Poi inizializza i 4 LED e impostali tutti per spegnere la pagina:

  condotto1 = 1;   
  condott2 = 1;
  condotta 3 = 1;
  condotta 4 = 1;

     Infine, scrivi il codice dell'effetto lampeggiante della luce LED:

    condotta 1 = 0;  Lampeggiamenti LED1
    Ritardo (10);
    condotto1 = 1;
    Ritardo (10);
   
    condotta 2 = 0;  Lampeggiamenti LED2
    Ritardo (10);
    condott2 = 1;
    Ritardo (10);
   
    condotta 3 = 0;  Lampeggiamento LED3
    Ritardo (10);
    condotta 3 = 1;
    Ritardo (10);
   
    condotta 4 = 0;  Lampeggiamento LED4
    Ritardo (10);
    condotta 4 = 1;
    Ritardo (10);


     Coinvolge una sottofunzione di ritardo Ritardo (carattere senza segno n):

void Delay (personaggio non firmato)  {
  Char I non firmato;
  int non firmato j ;
  per (i = 0; Io < n; i++)
    per (j = 1; j; j++)
    ;
}   


(5) Panoramica del codice

      Combinare il codice sopra in un unico intero, come segue:

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

//定义LED引脚
#define guidato 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口控制 //延时子程序
VoidRitardo (senza firmatura Charn)  {
  senza firmatura Chario;
  senza firmatura intj;
  per(i =0; Io < n; i++)
    per(j =1; j; j++)
    ;
}

Voidmain(Void)
{
  P1SEL =0x00;         Imposta P1 sulla porta I/O normale
  P1DIR |=0x0F;         Imposta P1.0, P1.1, P1.2, P1.3 come uscita
  
  Led1 =1;   //初始化,4个led灯全熄
  Led2 =1;
  led3 =1;
  Led4 =1;
  
  mentre(1)     //开始循环
  {
    Led1 =0;  //led1闪烁
    Ritardo (10);
    Led1 =1;
    Ritardo (10);
   
    Led2 =0;  //led2闪烁
    Ritardo (10);
    Led2 =1;
    Ritardo (10);
   
    led3 =0;  //led3闪烁
    Ritardo (10);
    led3 =1;
    Ritardo (10);
   
    Led4 =0;  //led4闪烁
    Ritardo (10);
    Led4 =1;
    Ritardo (10);
  }
}

     OK, il codice per questo piccolo esperimento è stato scritto, non è molto semplice, hehe~

4. Compilazione e debug

     Seleziona Project -> Make, compila il codice e, se ha successo, apparirà il seguente output:

     PasseggiataInterfaccia USB → Zigbee Development Board → Debugger per PCe poi seleziona Project -> Debug, e il programma verrà scaricato automaticamente sulla scheda.

     Poi seleziona Debug -> Vai ad avviare il programma, e vedrai 4 luci LED lampeggiare a turno! Anche se questo è un piccolo esperimento troppo semplice per esserlo, quando l'autore lo ha realizzato con successo, ero comunque un po' entusiasta~ hehe!

5. Conclusione

     Basato sull'"esperimento del lampeggiamento della luce LED", questo articolo introduce l'intero processo di implementazione dalla configurazione dell'IAR, alla scrittura del codice di programmazione, fino al processo di compilazione e debugging. Nel prossimo articolo, basandoci sulla comprensione del processo base di sviluppo del programma, presenteremo diversi esperimenti fondamentali per lo sviluppo di CC2430TimerComunicazione serialeConversione d.C.Sonno sistematico così come cani da guardiaEcc., quindi restate sintonizzati!






Precedente:Viaggio Zigbee (1): Aprire la strada
Prossimo:Viaggio Zigbee (3): Diversi importanti esperimenti di base CC2430 - interruzione esterna
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com