看ZigBee方面的知识有一段时间了,不过一直都没有入手开发板,所以也就没有办法实践,今天终于下了决心入手了三块CC2430的开发板,调试了第一程序,虽然没有和Z-Stack协议相关,但总之是迈出开始开发的第一步。这个程序也非常的简单,就是一个灯不停的闪烁。
我使用的开发环境是AR Embedded Workbench for MCS-51 V7.30H。对开发环境进行简单的配置以后就可以开始了 。
#include <iocc2430.h>
void Delay(unsigned char n) { unsigned char i; unsigned char j; for(i=0;i<n;i++) for(j=1;j;j++); }
void main(void) { /* CC2430 中,I/O 口做普通 I/O 使用时和每个 I/O 端口相关的寄存器有 3 个,分别是 //PxSEL功能选择寄存器,PxDIR 方向寄存器,PxINP 输入模式寄存器,其中 x 为 0,1,2 。 这里选择 P1.0 上的 色 LED 作为 I/O 测试。*/ CLKCON &=~0x04; while(!(SLEEP & 0x04)); //晶体振荡器开启且稳定 CLKCON &=~0x47; //选择 32MHz 晶体振荡器 SLEEP |=0x04; P1SEL = 0x00; //P1.0 为普通 I/O 口 选择寄存器 P1DIR = 0x01; //P1.0 输出 方向寄存器 while(1) { P1_0=1; Delay(10); P1_0=0; Delay(10); } }
|
我们可以看到本程序中包含了头文件#include ,那么这个头文件是在哪里呢,我们也并没有创建这个文件,还有就是程序中许多IO端口,寄存器的地址定义都是在这个头文件中,这个文件是在我们配置编译器选项时自动会建立的。在IAR开发环境中的"project"->"options"->"General Options"->"Target"->"Derivative"中选择的是CC2430.其中我们要理解各个寄存器的含义可以查看CC2430的DataSheet。
其中的一些寄存器含义如下:
SLEEP寄存器 Sleep Mode Control
bit 7:OSC32K_CALDIS 读/写 禁用32K RC振荡器 校正
bit6:XOSC_STB 只读 XOSC稳定性状态(设备必须等晶振稳定后才能进行后续操作)
bit5:HFRC_STB 只读 高频RC振荡器稳定性状态
bit4:bit3 :RST[1:0] 只读 指示上一次设备复位原因
bit2:OSC_PD 读/写 32MHz晶振和16MHz RC振荡器的掉电设定(High-frequency (32 MHz) crystal oscillator and High-frequency (16MHz) RC oscillator power down setting.)
bit1:bit0 :读/写 功耗模式设定(Power Mode Setting)
CLKCON寄存器 时钟控制(Clock Control)
bit7:OSC32K 读/写 32KHz时钟振荡器选择位。当要选择此位时,需要选择16MHz RC振荡器作为系统时钟源
bit6:OSC 读/写 系统时钟振荡器选择位
0:32MHz晶振
1:16MHz RC振荡器
bit5:bit3 TICKSPD[2:0] 读/写 定时器时钟频率输出设定,其设定的值不能够比通OSCar设置的系统时钟高。Timer ticks output setting, can not be higher than system clock setting given by OSC bit setting(Timer ticks不是很会翻译)
bit2:bit1 保留位 无功能
bit0:CLKSPD 只读 指示当前系统时钟频率 。
阅读(723) | 评论(0) | 转发(0) |