架构师_程序员_码农网

E Ambil kata sandi
Daftar

QQ登录

Hanya satu langkah untuk memulai

Cari
架构师_程序员_码农网 "架构' 管理专区 & Area Manajemen ' Keluhan dan Saran ' 回收站 ' 【转】Zigbee之旅(二):第一个CC2430程序-- . -Lampu LED berkedip ...
Tampilan:6245|Balas: 0
打印 上一主题 下一主题

Zigbee Journey (II): Program CC2430 pertama - percobaan kedipan LED

[Salin tautan]
A 跳转到指定楼层
pemilik gedung
2014-10-30 23:15:39|只看该作者回帖奖励|MembalikkanPenjelajahan|Mode Baca
I. Melanjutkan pembahasan sebelumnya

Pada artikel sebelumnya , "Zigbee Journey (I): The Beginning", kami secara singkat memperkenalkan Zigbee dan lingkungan pengembangannya, oke, sekarang setelah alatnya lengkap, muncul pertanyaan: bagaimana cara menggunakan perangkat lunak dan perangkat keras untuk menulis program yang dapat berjalan?

Artikel ini pada dasarnya untuk menjawab pertanyaan di atas: untuk "lampu LED berkedip" sebagai contoh percobaan kecil, cara mengkonfigurasi IAR untuk pengembangan program berbasis CC2430, cara menggunakan IAR untuk menulis dan men-debug program secara online.

Konfigurasi IAR

IAR adalah platform pengembangan tertanam yang kuat yang mendukung berbagai jenis chip, dan setiap Proyek dalam IAR dapat memiliki konfigurasinya sendiri, termasuk jenis Perangkat, Heap/Stack, Linker, Debugger, dll.

(1) Ruang Kerja dan Proyek Baru

Pertama-tama, buatlah folder ledtest baru, buka IAR, pilih menu utama File -> New -> Workspace untuk membuat ruang kerja baru.

Pilih Project -> Create New Project -> Empty Project, klik OK, dan simpan file proyek ke folder ledtest, dengan nama: ledtest.ewp (seperti di bawah ini).

(2) Konfigurasi Opsi Umum

Pengaturan target: Perangkat: CC2430;

Mode Kode: Dekat;

Model data: Besar;

Konvensi pemanggilan: Tumpukan XDATA reetrant

Pengaturan penunjuk data: Jumlah DPTR: 1

Pengaturan Stack/Heap: Ukuran tumpukan XDATA: 0x1FF

(3) Pengaturan penghubung

File perintah linker: pilih lnk51ew_cc2430.xcl

(4) Pengaturan debugger:


Driver: Texas Instruments (percobaan ini untuk debugging mesin yang sebenarnya, jadi pilihlah TI; jika prosedur lain untuk menggunakan emulator IAR, Simulator opsional) Perangkat File deskripsi: CC2430.ddf

Pada titik ini, konfigurasi IAR untuk percobaan ini pada dasarnya telah selesai, berikut ini adalah implementasi pengkodeannya.

Ketiga, persiapan kode program(1) File program baru

Pilih File->New->File, buat file baru main.c.

(2) Memperkenalkan file header

Program berbasis CC2430 harus menyertakan referensi ke ioCC2430.h, yang mendefinisikan pemetaan alamat berbagai jenis register fungsi khusus (SFR) CC2430.

#include //Memperkenalkan file header yang sesuai dengan CC2430 (berisi definisi setiap SFR)

File ini dibangun ke dalam IAR (mirip dengan stdio.h), mouse ke baris kode ini, klik kanan, pilih BUKA "ioCC2430.h", Anda dapat melihat konten lengkap file header ini.

(3) Tentukan pin LED

Periksa diagram sirkuit papan pengembangan, seperti yang ditunjukkan di bawah ini:

Diketahui bahwa led1 ~ 4 dikendalikan oleh pin P1_0 ~ P4_0, sehingga kita dapat mendefinisikan led1, led2, led3, led4 masing-masing sebagai pin P1_0, P2_0, P3_0, P4_0.


#define led1 P1_0 //define LED1 sebagai kontrol port P1_0 #define led2 P1_1

//define led2 sebagai kontrol port P1_1 #define led3 P1_2 //define led3 sebagai kontrol port P1_2 #define led4
P1_3 / / tentukan led4 untuk kontrol port P1_3

(4) Fungsi utama

Selanjutnya, mulailah menulis fungsi utama.

Pertama-tama, sebelum menggunakan port P1.0 ~ P1.4, Anda perlu mengatur mode kerja dan arah input/output, yang melibatkan dua SFR: P1SEL, P1DIR.


P1SEL = 0x00; //Setel P1 sebagai port I/O biasa P1DIR |= 0x0F; & Set P1.0 P1.1 P1.2 P1.3 sebagai output

Tips Zigbee
CC2430 memiliki P0_0 ~ P0_7, P1_0 ~ P1_7, P2_0 ~ P2_7 total 21 port I / O. Mereka dapat digunakan sebagai I / O digital tujuan umum atau untuk menghubungkan I / O periferal seperti ADC, timer / penghitung atau USART.
Ada tiga jenis register dalam SFR CC2430 yang dapat digunakan untuk mengonfigurasi port IO ini:
①PxSEL (x adalah 0/1/2): Pemilihan fungsi port P0/P1/P2
PxSEL (x adalah 0/1/2): Pemilihan fungsi port P0/P1/P2 0: IO digital tujuan umum, 1: IO periferal, default default adalah 0
PxDIR (x adalah 0/1/2): Arah port P0/P1/P2
& 0: input, 1: output, default default adalah 0
PxINP (x adalah 0/1): Mode input port P0/P1
0: naik, 1: output, default default 0 0: pull-up / down, 1: tri-state, default default adalah 0
Konfigurasi diperlukan saat menggunakan port IO, jika default, maka ambil default sistem.

Kemudian inisialisasi 4 LED, atur ke semua:




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

Terakhir, tulis kode efek kedipan LED:






led1 = 0; //led1 berkedip Delay(10); led1 = 1; Delay(10); led2




= 0; //led2 berkedip Tunda(10); led2 = 1; Tunda(10); led3 = 0; //led3 berkedip Tunda(10); /





//led3 berkedip Tunda(10); led3 = 1; Tunda(10); led4 = 0; //led4 berkedip &


Delay(10); led4 = 1; Delay(10);


Ini melibatkan sub-fungsi penundaan 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) Gambaran Umum Kode

Gabungkan kode di atas secara keseluruhan seperti yang ditunjukkan di bawah ini:

//Memperkenalkan file header
# include // perkenalkan file header yang sesuai dengan CC2430 (termasuk definisi setiap SFR)

// Tentukan pin LED
#define led1 P1_0 / / mendefinisikan LED1 untuk kontrol port P1_0
#define led2 P1_1 / / tentukan LED2 sebagai kontrol port P1_1
#define led3 P1_2 / / mendefinisikan LED3 sebagai kontrol port P1_2
#define led4 P1_3 //define LED4 sebagai kontrol port P1_3 //subrutin penundaan
void Delay (unsigned char n) {
unsigned char i.
unsigned int j.
for (i = 0; i < n; i++)
for (j = 1; j; j++)
;
}

void main (void )
{
P1SEL = 0x00; //Set P1 sebagai port I/O normal
P1DIR |= 0x0F; //Set P1.0 P1.1 P1.2 P1.3 sebagai output

led1 = 1; //inisialisasi, keempat lampu led mati
led2 = 1; //inisialisasi, semua 4 led mati
led3 = 1; led4 = 1; //inisialisasi, semua 4 led mati
led2 = 1; led3 = 1; led4 = 1; //inisialisasi, semua 4 lampu led mati

while(1 ) //mulai siklus
{
led1 = 0; //led1 berkedip
Delay (10 ); //Delay (10 ); //Delay (10 ); //Delay (10 )
delay(10); led1 = 1; //led1 berkedip
Tunda (10 ).

led2 = 0; //led2 berkedip
Delay (10 ); led2 = 1; //led2 berkedip
led2 = 1; //led2 berkedip
Tunda (10 ).

led3 = 0; //led3 berkedip
Delay (10 ); led3 = 1; //led3 berkedip
led3 = 1; //led3 berkedip
Tunda (10 ).

led4 = 0; //led4 berkedip
Delay (10 ); led4 = 1; //led4 berkedip
led4 = 1; //led4 berkedip
Delay (10 ); //Tunda (10 )
}
}

Oke, kode untuk percobaan kecil ini sudah selesai ditulis, tidak terlalu sederhana ya, hehe~!

Keempat, kompilasi dan debugging

Pilih Project -> Make, compile kode tersebut, jika berhasil akan muncul output berikut:

2011021320413789.jpg
c

Hubungkan perangkat Zigbee dengan urutan Zigbee development board → Debugger → Port USB PC , lalu pilih Project -> Debug, program akan diunduh ke dalam development board secara otomatis.

Kemudian pilih Debug -> Go untuk memulai program, dan Anda akan melihat 4 LED berkedip secara berurutan! Meskipun ini adalah eksperimen kecil yang sederhana, tetapi ketika saya berhasil mencapainya, saya sangat senang ~ ya!

V. Kesimpulan

Dalam makalah ini, "percobaan berkedip lampu LED" sebagai dasar, masing-masing, dari konfigurasi IAR, persiapan kode program, serta proses kompilasi dan debugging memperkenalkan seluruh proses implementasi. Selanjutnya, akan dibahas mengenai pemahaman proses dasar prosedur pengembangan berdasarkan pengenalan beberapa pengembangan CC2430 yang melibatkan pengatur waktu, komunikasi serial, konversi AD, sistem tidur dan pengawas , dll., Jadi, nantikan terus!






Sebelumnya: [Rujukan] Perjalanan Zigbee (I): awal mula dunia
Selanjutnya: [Laporan] Perjalanan Zigbee (III): Beberapa eksperimen dasar CC2430 yang penting - interupsi eksternal
Jaringan petani kode, hanya diterbitkan dalam proses praktik, mengalami kesulitan teknis, tidak menyesatkan orang lain.
Anda harus masuk sebelum dapat memposting kembali Masuk | Daftar

V ersi aturan integral iniB


PENAFIAN: Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer terbatas hanya untuk digunakan untuk tujuan pembelajaran dan penelitian; konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, semua konsekuensinya akan ditanggung oleh pengguna itu sendiri. Informasi situs ini berasal dari jaringan, sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus menghapus konten di atas sepenuhnya dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, mohon dukung perangkat lunak asli, beli registrasi dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email untuk menanganinya.

Mail To:help@itsvse.com

QQ | ( 鲁ICP备14021824号-2)|Peta Situs

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

Balas CepatKembali ke atasKembali ke daftar