Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 9158|Resposta: 0

Zigbee Journey (2): O primeiro programa CC2430 - experimento com piscas de luz LED

[Copiar link]
Publicado em 30/10/2014 23:15:39 | | | |
1. Conectando os níveis superior e inferior

     No artigo anteriorJornada Zigbee (1): Quebrando o Caminho, apresentamos brevemente o Zigbee e seu ambiente de desenvolvimento. OK, agora que as ferramentas estão completas, surge uma pergunta: como usar esses softwares e hardwares para escrever um programa que possa rodar?

     Este artigo basicamente responde às perguntas acima: Pegue o pequeno experimento do "piscar de luz LED" como exemplo para introduzir como configurar a IAR adequada para desenvolver programas baseados em CC2430 e como usá-laIAREscreva e depure programas online.

2. Configuração do IAR

     IAR é uma poderosa plataforma de desenvolvimento embarcada que suporta uma grande variedade de chips. Cada projeto no IAR pode ter sua própria configuração, incluindo tipo de dispositivo, pilha/pilha, linker, depurador, etc.

(1) Criar um novo Espaço de Trabalho e Projeto

     Primeiro, crie uma nova pasta ledtest. Abra o IAR e selecione o menu principal Arquivo > Novo Espaço de Trabalho > para criar um novo espaço de trabalho.

     Selecione Projeto -> Criar Novo Projeto -> Projeto Vazio, clique em OK e salve o arquivo do projeto na pasta ledtest, chamada ledtest.ewp (como mostrado abaixo).

(2) Configurar Opções Gerais

       Configuração de alvo: Dispositivo: CC2430;

                         Modo Código: Próximo;

                         Modelo de dados: Grande;

                         Chamando convenção:XDATA stack reetrant

     Configuração do ponteiro de dados: Número de DPTRs: 1

     Configuração de pilha/pilha: tamanho da pilha XDATA: 0x1FF

(3) Configurações do linker

     Arquivo de comando linker: Selecione lnk51ew_cc2430.xcl

(4) Configurações do depurador:

     Driver: Texas Instruments (Este experimento é uma depuração real de máquina, então escolha TI; Se outros programas quiserem usar o simulador IAR, você pode escolher Simulador)
     Arquivo de Descrição do Dispositivo:CC2430.ddf

      Neste ponto, a configuração da IAR para este experimento está basicamente encerrada, e a seguir está uma introdução à sua implementação de codificação.

3. Escrever código de programa(1) Criar um novo documento processual

      Selecione Arquivo->Novo->Arquivo e crie um novo arquivo main.c.

(2) Introduzir arquivos de cabeçalho

      Programas baseados em CC2430 devem incluir uma referência ao ioCC2430.h, que define o mapeamento de endereços dos vários registradores de função especial (SFRs) do CC2430.

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

      Este arquivo é integrado ao IAR (semelhante ao stdio.h), passe o mouse sobre essa linha de código, clique com o botão direito, selecioneOPen "ioCC2430.h"para ver o conteúdo completo deste arquivo de cabeçalho.

(3) Definir os pinos do LED

     Veja o diagrama do circuito da placa de revelação da seguinte forma:

     Pode-se ver que LED1~4 é controlado por pinos P1_0~P4_0 respectivamente, então LED1, LED2, LED3 e LED4 podem ser definidos como pinos P1_0, P2_0, P3_0 e P4_0, respectivamente.

#define LED1 P1_0 // Defina LED1 como o controle de porta P1_0
#define LED2 P1_1 // Defina LED2 como controle de P1_1 porta
#define LED3 P1_2 // Defina LED3 como controle P1_2 porta
#define LED4 P1_3 // Defina LED4 como controle de P1_3 porta

(4) função principal

     Em seguida, comece a escrever a função principal.

     Primeiramente, antes de usar a porta P1.0~P1.4, é necessário definir seu modo de funcionamento e direção de entrada/saída, que envolve dois SFRs: P1SEL e P1DIR.

  P1SEL = 0x00;          Defina o P1 para a porta normal de E/S
  P1DIR |= 0x0F;          Defina P1.0, P1.1, P1.2, P1.3 como saída

Dicas Zigbee
O CC2430 possui:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Um total de 21 portas de E/S. Eles podem ser usados como E/S digitais de uso geral ou podem ser usados para conectar E/S periféricas como ADCs, contadores de temporização ou USARTs.
Existem três classes de registradores no SFR do CC2430 que podem ser usadas para configurar essas portas de IO:
(1)PxSEL(x é 0/1/2) :P seleção de função de porta 0/P1/P2
                                0: E///(/) (/)
(2)PxDIR(x é 0/1/2) :P direção de porta 0/P1/P2
                                0: entrada, 1: saída, o padrão é 0
(3)PxINP(x é 0/1) :P modo de entrada de porta 0/P1
                                0: Puxar para cima/puxar para baixo, 1: Três estados, o padrão é 0
Ele precisa ser configurado ao usar a porta de E/S, e se for padrão, o valor padrão do sistema é assumido.

     Depois, inicialize os 4 LEDs e configure para que todos se apaguem:

  liderou1 = 1;   
  liderou2 = 1;
  liderou3 = 1;
  liderou4 = 1;

     Por fim, escreva o código do efeito piscando da luz LED:

    liderou1 = 0;  LED1 pisca
    Atraso (10);
    liderou1 = 1;
    Atraso (10);
   
    liderou2 = 0;  Piscas LED2
    Atraso (10);
    liderou2 = 1;
    Atraso (10);
   
    liderou3 = 0;  Piscando LED3
    Atraso (10);
    liderou3 = 1;
    Atraso (10);
   
    liderou4 = 0;  Piscando LED4
    Atraso (10);
    liderou4 = 1;
    Atraso (10);


     Envolve uma subfunção de atraso Atraso (caráter não assinado):

void Delay (personagem não assinado)  {
  Char I não assinado;
  int sem sinal;
  para (i = 0; Eu < n; i++)
    para (j = 1; j; j++)
    ;
}   


(5) Visão geral do código

      Combine o código acima em um único todo, da seguinte forma:

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

//定义LED引脚
#define liderou1 P1_0         //定义LED1为P1_0口控制
#define P1_1 liderado2         //定义LED2为P1_1口控制
#define liderou 3 P1_2         //定义LED3为P1_2口控制
#define P1_3 Led4         //定义LED4为P1_3口控制 //延时子程序
vazioAtraso(sem assinatura Charn)  {
  sem assinatura Chareu;
  sem assinatura intj;
  para(i =0; Eu < n; i++)
    para(j =1; j; j++)
    ;
}

vaziomain(vazio)
{
  P1SEL =0x00;         Defina o P1 para a porta normal de E/S
  P1DIR |=0x0F;         Defina P1.0, P1.1, P1.2, P1.3 como saída
  
  liderado1 =1;   //初始化,4个led灯全熄
  liderado2 =1;
  Liderado3 =1;
  liderado4 =1;
  
  enquanto(1)     //开始循环
  {
    liderado1 =0;  //led1闪烁
    Atraso(10);
    liderado1 =1;
    Atraso(10);
   
    liderado2 =0;  //led2闪烁
    Atraso(10);
    liderado2 =1;
    Atraso(10);
   
    Liderado3 =0;  //led3闪烁
    Atraso(10);
    Liderado3 =1;
    Atraso(10);
   
    liderado4 =0;  //led4闪烁
    Atraso(10);
    liderado4 =1;
    Atraso(10);
  }
}

     OK, o código desse pequeno experimento já foi escrito, não é muito simples, hehe~

4. Compilação e depuração

     Selecione Projeto -> Fazer, compile o código e, se for bem-sucedido, aparecerá o seguinte resultado:

     ImprensaInterface USB → Zigbee Development Board → Debugger para PCe então selecione Projeto -> Depurar, e o programa será automaticamente baixado para a placa.

     Depois, selecione Debug -> Vá iniciar o programa, e você verá 4 luzes de LED piscando uma em diante! Embora seja um experimento pequeno, simples demais para ser simples, quando o autor conseguiu realizá-lo, eu ainda fiquei um pouco animado~ hehe!

5. Conclusão

     Baseado no "experimento de piscação de luz LED", este artigo apresenta todo o processo de implementação, desde a configuração do IAR, a escrita do código do programa até o processo de compilação e depuração. No próximo artigo, com base na compreensão do processo básico de desenvolvimento do programa, apresentaremos vários experimentos básicos para o desenvolvimento do CC2430TemporizadorComunicação serialConversão para o Dia do DiaSono sistemático, assim como vigilânciaetc., então fiquem ligados!






Anterior:Jornada Zigbee (1): Quebrando o Caminho
Próximo:Jornada Zigbee (3): Vários experimentos básicos importantes do CC2430 - interrupção externa
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com