|
1. Menghubungkan tingkat atas dan bawah Pada artikel sebelumnyaPerjalanan Zigbee (1): Mendobrak Tanah, kami memperkenalkan secara singkat Zigbee dan lingkungan pengembangannya. Oke, sekarang setelah alatnya selesai, muncul pertanyaan: bagaimana cara menggunakan perangkat lunak dan perangkat keras ini untuk menulis program yang dapat dijalankan? Artikel ini pada dasarnya untuk menjawab pertanyaan-pertanyaan di atas: Ambil percobaan kecil "lampu LED berkedip" sebagai contoh untuk memperkenalkan cara mengkonfigurasi IAR agar cocok untuk mengembangkan program berbasis CC2430, dan cara menggunakannyaIARTulis dan debug program online. 2. Konfigurasi IAR IAR adalah platform pengembangan tertanam yang kuat yang mendukung berbagai macam chip. Setiap proyek di IAR dapat memiliki konfigurasinya sendiri, termasuk jenis perangkat, tumpukan/tumpukan, linker, debugger, dll. (1) Membuat Ruang Kerja dan Proyek baru Pertama, buat folder baru ledtest. Buka IAR dan pilih menu utama File -> New -> Workspace untuk membuat ruang kerja baru. Pilih Project -> Create New Project -> Empty Project, klik OK, dan simpan file project ke folder ledtest, bernama ledtest.ewp (seperti yang ditunjukkan di bawah).
(2) Konfigurasikan Opsi Umum Pengaturan target: Perangkat: CC2430; Mode Kode: Dekat; Model data: Besar; Memanggil konvensi:XDATA stack reetrant
Pengaturan penunjuk data: Jumlah DPTR: 1
Pengaturan tumpukan/tumpukan: Ukuran tumpukan XDATA: 0x1FF
(3) Pengaturan penghubung File perintah linker: Pilih lnk51ew_cc2430.xcl
(4) Pengaturan debugger: Driver: Texas Instruments (Eksperimen ini adalah debugging mesin nyata, jadi pilih TI; Jika program lain ingin menggunakan simulator IAR, Anda dapat memilih Simulator) File Deskripsi Perangkat:CC2430.ddf
Pada titik ini, konfigurasi IAR untuk eksperimen ini pada dasarnya telah berakhir, dan berikut ini adalah pengantar implementasi pengkodeannya. 3. Menulis kode program(1) Membuat dokumen prosedural baru Pilih File->New->File dan buat file baru main.c. (2) Perkenalkan file header Program berbasis CC2430 harus menyertakan referensi ke ioCC2430.h, yang mendefinisikan pemetaan alamat dari berbagai register fungsi khusus (SFR) CC2430. #include //引入CC2430所对应的头文件(包含各SFR的定义)
File ini dibangun ke dalam IAR (mirip dengan stdio.h), arahkan kursor ke baris kode ini, klik kanan, pilihOPen "ioCC2430.h"untuk melihat konten lengkap file header ini. (3) Tentukan pin LED Lihat diagram sirkuit papan pengembangan sebagai berikut:
Dapat dilihat bahwa LED1~4 dikendalikan oleh pin masing-masing P1_0~P4_0, sehingga LED1, LED2, LED3, dan LED4 masing-masing dapat didefinisikan sebagai pin P1_0, P2_0, P3_0, dan P4_0. #define LED1 P1_0 // Tentukan LED1 sebagai kontrol port P1_0 #define LED2 P1_1 // Tentukan LED2 sebagai kontrol port P1_1 #define LED3 P1_2 // Tentukan LED3 sebagai kontrol port P1_2 #define LED4 P1_3 // Tentukan LED4 sebagai kontrol port P1_3
(4) Fungsi utama Selanjutnya, mulailah menulis fungsi utama. Pertama-tama, sebelum menggunakan port P1.0 ~ P1.4, perlu untuk mengatur mode kerja dan arah input/output, yang melibatkan dua SFR: P1SEL dan P1DIR. P1SEL = 0x00; Atur P1 ke port I/O normal P1DIR |= 0x0F; Atur P1.0, P1.1, P1.2, P1.3 sebagai output
Zigbee Tips CC2430 memiliki:P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7Sebanyak 21 port I/O. Mereka dapat digunakan sebagai I/O digital tujuan umum atau dapat digunakan untuk menghubungkan IO periferal seperti ADC, waktu/penghitung, atau USART. Ada tiga kelas register di SFR CC2430 yang dapat digunakan untuk mengonfigurasi port IO ini: (1)PxSEL(x adalah 0/1/2) :P pemilihan fungsi port 0/P1/P2 0: IO numerik universal, 1: IO periferal, defaultnya adalah 0 (2)PxDIR(x adalah 0/1/2) :P arah port 0/P1/P2 0: masukan, 1: keluaran, defaultnya adalah 0 (3)PxINP(x adalah 0/1) :P mode input port 0/P1 0: Tarik ke atas/tarik ke bawah, 1: Tiga status, defaultnya adalah 0 Itu perlu dikonfigurasi saat menggunakan port IO, dan jika default, nilai default sistem diambil. Kemudian inisialisasi 4 LED dan atur ke semua padam: led1 = 1; led2 = 1; led3 = 1; led4 = 1;
Terakhir, tulis kode efek berkedip lampu LED: led1 = 0; LED1 berkedip Penundaan(10); led1 = 1; Penundaan(10);
led2 = 0; LED2 berkedip Penundaan(10); led2 = 1; Penundaan(10);
led3 = 0; LED3 berkedip Penundaan(10); led3 = 1; Penundaan(10);
led4 = 0; LED4 berkedip Penundaan(10); led4 = 1; Penundaan(10);
Ini melibatkan subfungsi penundaan Penundaan (karakter tidak ditandatangani n): void Delay(char n) { char i yang tidak ditandatangani; tidak ditandatangani int j; for(i = 0; saya < n; i++) untuk(j = 1; j; j++) ; }
(5) Ikhtisar kode Gabungkan kode di atas menjadi satu keseluruhan, sebagai berikut: //引入头文件
#include //引入CC2430所对应的头文件(包含各SFR的定义)
//定义LED引脚
#define led1 P1_0 //定义LED1为P1_0口控制
#define led2 P1_1 //定义LED2为P1_1口控制
#define led3 P1_2 //定义LED3为P1_2口控制
#define led4 P1_3 //定义LED4为P1_3口控制 //延时子程序
kosongPenundaan(tidak ditandatangani arangn) {
tidak ditandatangani arangi;
tidak ditandatangani intj;
untuk(i =0; saya < n; i++)
untuk(j =1; j; j++) ;
}
kosongutama(kosong)
{ P1SEL =0x00; Atur P1 ke port I/O normal P1DIR |=0x0F; Atur P1.0, P1.1, P1.2, P1.3 sebagai output
led1 =1; //初始化,4个led灯全熄 led2 =1; led3 =1; led4 =1;
sementara(1) //开始循环 { led1 =0; //led1闪烁 Penundaan(10); led1 =1; Penundaan(10);
led2 =0; //led2闪烁 Penundaan(10); led2 =1; Penundaan(10);
led3 =0; //led3闪烁 Penundaan(10); led3 =1; Penundaan(10);
led4 =0; //led4闪烁 Penundaan(10); led4 =1; Penundaan(10); }
}
Oke, kode untuk eksperimen kecil ini sudah ditulis, bukankah itu sangat sederhana, hehe ~ 4. Kompilasi dan debugging Pilih Project -> Make, kompilasi kode, dan jika berhasil, output berikut akan muncul:
TekanPapan Pengembangan Zigbee → Debugger → antarmuka USB untuk PClalu pilih Project -> Debug, dan program akan secara otomatis diunduh ke papan. Kemudian pilih Debug -> Go untuk memulai program, dan Anda akan melihat 4 lampu LED berkedip secara bergantian! Meskipun ini adalah eksperimen kecil yang terlalu sederhana untuk menjadi sederhana, ketika penulis berhasil menyadarinya, saya masih sedikit bersemangat ~ hehe! 5. Kesimpulan Berdasarkan "Eksperimen berkedip lampu LED", makalah ini memperkenalkan seluruh proses implementasi dari konfigurasi IAR, penulisan kode program, dan proses kompilasi dan debugging. Pada artikel berikutnya, berdasarkan pemahaman proses dasar pengembangan program, kami akan memperkenalkan beberapa eksperimen dasar untuk pengembangan CC2430Pengatur waktu、Komunikasi serial、Konversi AD、Tidur sistematis serta pengawasdll., jadi pantau terus!
|