Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 9158|Respuesta: 0

Zigbee Journey (2): El primer programa CC2430 - experimento de parpadeo de luz LED

[Copiar enlace]
Publicado en 30/10/2014 23:15:39 | | | |
1. Conexión entre los niveles superior e inferior

     En el artículo anteriorViaje en Zigbee (1): Abriendo Caminos, presentamos brevemente Zigbee y su entorno de desarrollo. Bien, ahora que las herramientas están completas, surge una pregunta: ¿cómo usar este software y hardware para escribir un programa que pueda ejecutarse?

     Este artículo es básicamente para responder a las preguntas anteriores: Tomemos como ejemplo el pequeño experimento del "parpadeo de luz LED" para introducir cómo configurar la IAR adecuada para desarrollar programas basados en CC2430 y cómo utilizarlaIAREscribe y depura programas en línea.

2. Configuración de IAR

     IAR es una potente plataforma de desarrollo embebida que soporta una amplia variedad de chips. Cada proyecto en IAR puede tener su propia configuración, incluyendo tipo de dispositivo, pila/pila, enlazador, depurador, etc.

(1) Crear un nuevo espacio de trabajo y proyecto

     Primero, crea una nueva carpeta ledtest. Abre IAR y selecciona el menú principal Archivo -> Nuevo espacio de trabajo > para crear un nuevo espacio de trabajo.

     Selecciona Proyecto -> Crear Nuevo Proyecto -> Proyecto Vacío, haz clic en Aceptar y guarda el archivo del proyecto en la carpeta ledtest, llamada ledtest.ewp (como se muestra a continuación).

(2) Configurar opciones generales

       Configuración objetivo: Dispositivo: CC2430;

                         Modo Código: Cerca;

                         Modelo de datos: Grande;

                         Llamando a la convención:XDATA stack reetrant

     Ajuste del puntero de datos: Número de DPTR: 1

     Configuración de pila/heap: tamaño de la pila XDATA: 0x1FF

(3) Configuración del enlace

     Archivo de comandos del enlazador: Seleccione lnk51ew_cc2430.xcl

(4) Configuración del depurador:

     Driver: Texas Instruments (Este experimento es una depuración real de máquina, así que elige TI; Si otros programas quieren usar el simulador IAR, puedes elegir Simulador)
     Archivo de descripción del dispositivo:CC2430.ddf

      En este punto, la configuración de la IA para este experimento está prácticamente terminada, y a continuación se presenta una introducción a su implementación de codificación.

3. Escribir código de programa(1) Crear un nuevo documento procesal

      Selecciona Archivo->Nuevo->Archivo y crea un nuevo archivo main.c.

(2) Introducir archivos de cabecera

      Los programas basados en CC2430 deben incluir una referencia a ioCC2430.h, que define el mapeo de direcciones de los distintos registros de funciones especiales (SFRs) del CC2430.

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

      Este archivo está integrado en IAR (similar a stdio.h), pasa el cursor sobre esta línea de código, haz clic derecho y seleccionaOPen "ioCC2430.h"para ver el contenido completo de este archivo de cabecera.

(3) Definir los pines del LED

     Consulta el diagrama de circuito de la placa de revelado de la siguiente manera:

     Se puede ver que LED1~4 se controla por pines P1_0~P4_0 respectivamente, por lo que LED1, LED2, LED3 y LED4 pueden definirse como pines P1_0, P2_0, P3_0 y P4_0 respectivamente.

#define LED1 P1_0 // Define LED1 como el control de puerto P1_0
#define LED2 P1_1 // Define LED2 como control P1_1 puerto
#define LED3 P1_2 // Define LED3 como control de puerto P1_2
#define LED4 P1_3 // Define LED4 como control P1_3 puerto

(4) Función principal

     Después, empieza a escribir la función principal.

     En primer lugar, antes de usar el puerto P1.0~P1.4, es necesario establecer su modo de trabajo y la dirección de entrada/salida, que implica dos SFR: P1SEL y P1DIR.

  P1SEL = 0x00;          Configura P1 en el puerto normal de E/S
  P1DIR |= 0x0F;          Establece P1.0, P1.1, P1.2, P1.3 como salida

Consejos Zigbee
El CC2430 tiene:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Un total de 21 puertos de E/S. Pueden usarse como E/S digitales de propósito general o para conectar E/S periféricas como ADCs, contadores de temporización o USARTs.
Hay tres clases de registros en el SFR del CC2430 que pueden usarse para configurar estos puertos de E/S:
(1)PxSEL(x es 0/1/2) :P selección de funciones de puerto 0/P1/P2
                                0: E///.
(2)PxDIR(x es 0/1/2) :P dirección de puerto 0/P1/P2
                                0: entrada, 1: salida, el valor por defecto es 0
(3)PxINP(x es 0/1) :P modo de entrada de puerto 0/P1
                                0: Tira hacia arriba/tira hacia abajo, 1: Tres estados, el valor por defecto es 0
Debe configurarse al usar el puerto de E/S, y si es el predeterminado, se toma el valor predeterminado del sistema.

     Luego inicializa los 4 LEDs y ponlos en que todos se apaguen:

  lideró1 = 1;   
  lideraba2 = 1;
  lideró3 = 1;
  lideró4 = 1;

     Por último, escribe el código del efecto de parpadeo de la luz LED:

    lideraba1 = 0;  Destellos LED1
    Retraso (10);
    lideró1 = 1;
    Retraso (10);
   
    lideró2 = 0;  Destellos LED2
    Retraso (10);
    lideraba2 = 1;
    Retraso (10);
   
    lideraba3 = 0;  Flashes LED3
    Retraso (10);
    lideró3 = 1;
    Retraso (10);
   
    lideraba4 = 0;  Destellos LED4
    Retraso (10);
    lideró4 = 1;
    Retraso (10);


     Implica una subfunción de retardo Retraso (carácter sin signo n):

void Delay (personaje sin firmar)  {
  Char I sin firmar;
  int j sin firma;
  para (i = 0; Yo < n; i++)
    para (j = 1; j; j++)
    ;
}   


(5) Resumen del código

      Combina el código anterior en un solo todo, de la siguiente manera:

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

//定义LED引脚
#define lideró P1_0         //定义LED1为P1_0口控制
#define P1_1 LED2         //定义LED2为P1_1口控制
#define led3 P1_2         //定义LED3为P1_2口控制
#define led4 P1_3         //定义LED4为P1_3口控制 //延时子程序
VacíoRetraso(sin firmar charn)  {
  sin firmar charYo;
  sin firmar intj;
  para(i =0; Yo < n; i++)
    para(j =1; j; j++)
    ;
}

Vacíomain(Vacío)
{
  P1SEL =0x00;         Configura P1 en el puerto normal de E/S
  P1DIR |=0x0F;         Establece P1.0, P1.1, P1.2, P1.3 como salida
  
  liderado1 =1;   //初始化,4个led灯全熄
  Liderado2 =1;
  liderado3 =1;
  Liderado4 =1;
  
  mientras(1)     //开始循环
  {
    liderado1 =0;  //led1闪烁
    Retraso(10);
    liderado1 =1;
    Retraso(10);
   
    Liderado2 =0;  //led2闪烁
    Retraso(10);
    Liderado2 =1;
    Retraso(10);
   
    liderado3 =0;  //led3闪烁
    Retraso(10);
    liderado3 =1;
    Retraso(10);
   
    Liderado4 =0;  //led4闪烁
    Retraso(10);
    Liderado4 =1;
    Retraso(10);
  }
}

     Vale, el código de este pequeño experimento ya está escrito, ¿no es muy sencillo, jeje~

4. Compilación y depuración

     Selecciona Project -> Make, compila el código y, si tiene éxito, aparecerá la siguiente salida:

     PrensaInterfaz USB → Zigbee Development Board → Debugger para PCy luego selecciona Proyecto -> Depurar, y el programa se descargará automáticamente en la placa.

     Luego selecciona Debug -> Ve para iniciar el programa, ¡y verás 4 luces LED parpadeando por turno! Aunque es un experimento pequeño y demasiado simple para serlo, cuando el autor lo logró realizar, seguía un poco emocionado~ jeje!

5. Conclusión

     Basándose en el "experimento de parpadeo de luz LED", este artículo introduce todo el proceso de implementación desde la configuración de la IAR, la escritura del código del programa y el proceso de compilación y depuración. En el próximo artículo, basándonos en la comprensión del proceso básico de desarrollo del programa, presentaremos varios experimentos básicos para el desarrollo de CC2430TemporizadorComunicación serialConversión d.C.Sueño sistemático y vigilanciaetc., ¡así que estad atentos!






Anterior:Viaje en Zigbee (1): Abriendo camino
Próximo:Zigbee Journey (3): Varios experimentos básicos importantes de CC2430 - interrupción externa
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com