|
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 CC2430Temporizador、Comunicação serial、Conversão para o Dia do Dia、Sono sistemático, assim como vigilânciaetc., então fiquem ligados!
|