架构师_程序员_码农网

N Recupera la password
Registrazione

QQ登录

Un solo passo per iniziare

Ricerca
架构师_程序员_码农网 "架构师 ' 管理专区&Area Gestione ' Reclami e Suggerimenti ' 回收站 ' 【转】Zigbee之旅(二):第一个CC2430程序-- . -LED lampeggianti ...
Vista:6245|Risposta: 0
打印 上一主题 下一主题

Viaggio Zigbee (II): Il primo programma CC2430 - Esperimento di lampeggiamento LED

[Copia link]
S 跳转到指定楼层
al proprietario dell'edificio
发表于 2014-10-30 23:15:39|只看该作者回帖奖励 | Scorrimento all'indietro| Modalità di lettura
I. Riprendere da dove abbiamo lasciato

Nell'articolo precedente , "Zigbee Journey (I): The Beginning", abbiamo introdotto brevemente Zigbee e il suo ambiente di sviluppo, OK, ora che gli strumenti sono completi, sorge una domanda: come utilizzare il software e l'hardware per scrivere un programma che possa funzionare?

Questo articolo si propone essenzialmente di rispondere alla domanda di cui sopra: "lampeggiamento della luce LED" come esempio di un piccolo esperimento, come configurare IAR per lo sviluppo di programmi basati su CC2430, come utilizzare IAR per scrivere ed eseguire il debug del programma online.

Configurazione di IAR

IAR è una potente piattaforma di sviluppo embedded che supporta molti tipi di chip e ogni progetto in IAR può avere una propria configurazione, tra cui tipo di dispositivo, Heap/Stack, Linker, Debugger, ecc.

(1) Nuovo spazio di lavoro e progetto

Prima di tutto, creare una nuova cartella ledtest, aprire IAR, selezionare il menu principale File -> New -> Workspace per creare un nuovo spazio di lavoro.

Selezionare Progetto -> Crea nuovo progetto -> Progetto vuoto, fare clic su OK e salvare il file di progetto nella cartella ledtest, denominato: ledtest.ewp (come di seguito).

(2) Configurare le opzioni generali

Impostazione target: Dispositivo: CC2430;

Modalità codice: Vicino;

Modello dati: Large;

Convenzione di chiamata: XDATA stack reetrant

Impostazione del puntatore dati: Numero di DPTR: 1

Impostazione dello stack/Heap: dimensione dello stack XDATA: 0x1FF

(3) Impostazioni del linker

File di comando del linker: select lnk51ew_cc2430.xcl

(4) Impostazioni del debugger:


Driver: Texas Instruments (questo esperimento per il debug della macchina reale, quindi scegliere TI; se altre procedure per utilizzare l'emulatore IAR, opzionale Simulatore) Dispositivo File di descrizione: CC2430.ddf

A questo punto, la configurazione di IAR per questo esperimento è sostanzialmente conclusa, di seguito si introdurrà la sua implementazione di codifica.

Terzo, la preparazione del codice del programma(1) Nuovo file di programma

Scegliere File->Nuovo->File, creare un nuovo file main.c.

(2) Introdurre i file di intestazione

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

#include //Introduce il file di intestazione corrispondente al CC2430 (contiene la definizione di ogni SFR)

Questo file è incorporato in IAR (simile a stdio.h); con il mouse su questa riga di codice, fare clic con il tasto destro del mouse, selezionare OPen "ioCC2430.h", per visualizzare il contenuto completo di questo file di intestazione.

(3) Definire i pin del LED

Controllare lo schema elettrico della scheda di sviluppo, come mostrato di seguito:

È noto che i led1~4 sono controllati rispettivamente dai pin P1_0~P4_0, quindi possiamo definire led1, led2, led3, led4 come pin P1_0, P2_0, P3_0, P4_0 rispettivamente.


#define led1 P1_0 //define LED1 come controllo della porta P1_0 #define led2 P1_1

//definire led2 come controllo della porta P1_1 #define led3 P1_2 //definire led3 come controllo della porta P1_2 #define led4
P1_3 //definire led4 per il controllo della porta P1_3

(4) Funzione principale

Si inizia quindi a scrivere la funzione principale.

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


P1SEL = 0x00; //Impostare P1 come porta di I/O ordinaria P1DIR |= 0x0F; & nbsp; //Impostare P1.0 P1.1 P1.2 P1.3 come uscite

Suggerimenti per Zigbee
Il CC2430 dispone di P0_0 ~ P0_7, P1_0~P1_7, P2_0~P2_7, per un totale di 21 porte di I/O. Possono essere utilizzate come I/O digitali generici o per collegare IO periferici come ADC, timer/counter o USART.
Per configurare queste porte di I/O è possibile utilizzare tre tipi di registri nell'SFR del CC2430:
①PxSEL (x è 0/1/2): selezione della funzione della porta P0/P1/P2
PxSEL (x è 0/1/2): selezione della funzione della porta P0/P1/P2 nbsp;0: IO digitale generico, 1: IO periferico, l'impostazione predefinita è 0
PxDIR (x è 0/1/2): direzione della porta P0/P1/P2
& nbsp;0: ingresso, 1: uscita, l'impostazione predefinita è 0
③PxINP (x è 0/1): modalità di ingresso della porta P0/P1
0: up, 1: output, valore predefinito 0 nbsp;0: pull-up/down, 1: tri-state, l'impostazione predefinita è 0
La configurazione è necessaria quando si utilizza la porta IO, se è predefinita, prendere l'impostazione predefinita del sistema.

Quindi inizializzare i 4 LED, impostandoli tutti su out:




led1 = 1; led2 = 1; led3 = 1; led4 = 1.

Infine, scrivere il codice dell'effetto lampeggiante dei LED:






led1 = 0; //led1 lampeggia Ritardo(10); led1 = 1; Ritardo(10); led2




= 0; //led2 lampeggia Delay(10); led2 = 1; Delay(10); led3 = 0; //led3 lampeggia Delay(10); /





//led3 lampeggiante Ritardo(10); led3 = 1; Ritardo(10); led4 = 0; //led4 lampeggiante &


nbsp; Ritardo(10); led4 = 1; Ritardo(10);


Si tratta di una sottofunzione di ritardo Delay(unsigned char n):





v oid Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++) &nbsp


; for(j = 1; j; j++) ; }

(5) Panoramica del codice

Combinate il codice precedente come mostrato di seguito:

//Introdurre i file di intestazione
#include //introduce il file di intestazione corrispondente al CC2430 (inclusa la definizione di ogni SFR)

//Definire i pin del LED
#define led1 P1_0 //define LED1 per il controllo della porta P1_0
#define led2 P1_1 //define LED2 per il controllo della porta P1_1
#define led3 P1_2 //definizione del LED3 come controllo della porta P1_2
#define led4 P1_3 //define LED4 per il controllo della porta P1_3 //delay subroutine
void Delay (unsigned char n) {
carattere non firmato i.
unsigned int j.
for (i = 0; i < n; i++)
for (j = 1; j; j++)
;
}

void main (void )
{
P1SEL = 0x00; /Imposta P1 come normale porta di I/O
P1DIR |= 0x0F; //Impostare P1.0 P1.1 P1.2 P1.3 come uscite

led1 = 1; //inizializzazione, tutti e 4 i led spenti
led2 = 1; //inizializzazione, tutti e 4 i led spenti
led3 = 1; led4 = 1; //inizializzazione, tutti e 4 i led spenti
led2 = 1; led3 = 1; led4 = 1; //inizializzazione, tutti e 4 i led spenti

while(1 ) //inizia il ciclo
{
led1 = 0; //led1 lampeggia
Ritardo (10 ); //ritardo (10 ); //ritardo (10 ); //ritardo (10 )
ritardo(10); led1 = 1; //led1 lampeggia
Ritardo (10 ).

led2 = 0; //led2 lampeggia
Ritardo (10 ); led2 = 1; //led2 lampeggia
led2 = 1; //led2 lampeggia
Ritardo (10 ).

led3 = 0; //led3 lampeggia
Ritardo (10 ); led3 = 1; //led3 lampeggia
led3 = 1; //led3 sta lampeggiando
Ritardo (10 ).

led4 = 0; //led4 sta lampeggiando
Ritardo (10 ); led4 = 1; //led4 lampeggia
led4 = 1; //led4 sta lampeggiando
Ritardo (10 ); //ritardo (10 )
}
}

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

Quarto, compilazione e debug

Selezionate Project -> Make, compilate il codice e, in caso di successo, apparirà il seguente output:

2011021320413789.jpg
c

Collegare il dispositivo Zigbee nell'ordine scheda di sviluppo Zigbee → Debugger → porta USB del PC , quindi selezionare Progetto -> Debug, il programma verrà scaricato automaticamente nella scheda di sviluppo.

Quindi selezionare Debug -> Go per avviare il programma, e si vedranno i 4 LED lampeggiare in sequenza! Anche se questo è un semplice non può essere più semplice piccoli esperimenti, ma quando sono riuscito a raggiungere, o un piccolo eccitato ~ eh!

V. Conclusione

In questo articolo, l'"esperimento di lampeggiamento della luce LED" come base, rispettivamente, dalla configurazione di IAR, la preparazione del codice del programma, così come il processo di compilazione e debug introduce l'intero processo di implementazione. Il prossimo articolo sarà dedicato alla comprensione del processo di base delle procedure di sviluppo basate sull'introduzione di diversi esperimenti di base sullo sviluppo di CC2430 che coinvolgono timer, comunicazioni seriali, conversione AD, sleep e watchdog del sistema , ecc.






Precedente: [Riferito] Viaggio Zigbee (I): l'inizio del mondo
Next: [Riferito]Viaggio Zigbee (III): alcuni importanti esperimenti di base CC2430 - interrupt esterni
La rete di agricoltori codice, solo pubblicato nel processo di pratica, ha incontrato difficoltà tecniche, non ingannare gli altri.
Devi effettuare il login prima di poter postare Log in | Registrati

Q uesta versione delle regole integrali


DISCLAIMER: Tutti i software, i materiali di programmazione o gli articoli pubblicati da Code Farmer sono limitati all'uso per scopi di apprendimento e di ricerca; i suddetti contenuti non devono essere utilizzati per scopi commerciali o illegali, altrimenti tutte le conseguenze saranno a carico degli utenti stessi. Le informazioni di questo sito provengono dalla rete, la disputa sul copyright non ha nulla a che fare con questo sito. È necessario rimuovere completamente il contenuto di cui sopra dal proprio computer entro 24 ore dal download. Se vi piace il programma, vi preghiamo di sostenere il software autentico, di acquistare la registrazione e di ottenere un servizio autentico migliore. In caso di violazione, si prega di contattarci via e-mail per risolvere il problema.

Posta To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-17 14:48

Risposta rapidaTorna all'inizioTorna all'elenco