一、zigbee裸机程序–点亮led
软件平台:Embedded Workbench 6.0 IAR 8.10.1
硬件平台:webee普通底板,cc2530(无PA)
cc2530想象为一个51单片机+AF无线模块的集成芯片。在使用裸机编程时,可以不考虑组网问题,按照原来使用51单片机的方法即可。
点亮led程序中,使用的资源为一个I/O端口,需要从user guide中找到配置I/O的寄存器。
一:查找寄存器
在user guide手册中,找到了3个控制I/O的寄存器,分别是PxSEL,PxDIR和PxINP。
PxSEL:设置I/O功能,0表示通用I/O,1表示外设功能。默认为0。
PxDIR:设置I/O方向,0表示输入,1表示输出。默认为0。
PxINP:输入时,设置为0:上拉/下拉,或者1:三态。默认为0。
二、配置寄存器
按照如下图所示流程进行配置。
因为设置为通用i/o,而且是输出模式,所以不需要进行PxINP的设置。注意:如果使用webee带PA的CC2530模块,其P1.1和P1.3用于PA芯片,所以无法设置LED。
三、程序
#include <ioCC2530.h>
#define LED1 P1_0 //定义P10口为LED1控制端
#define LED2 P1_1 //定义P11口为LED2控制端
void IO_Init(void)
{
P1SEL &=~0X03; //P1_0、P1_1定义为通用IO
P1DIR |= 0X03; //P1_0、P1_1定义为输出
}
void main(void)
{
IO_Init(); //调用初始化程序
LED1 = 1; //点亮LED1,底板上led是接到3.3v再到IO
LED2 = 1;
while(1);
}
四、现象
下图可见led1和led2常亮。